草庐IT

dispatch_main_queue_callback

全部标签

ios - 删除/停止 dispatch_async iOS

我创建了一个dispatch_async来将数据下载到网络服务。我用possibilida中的按钮创建了一个警报,以取消/阻止下载。我的问题是:如何删除/停止我的dispatch_async?这是我的express:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)){doStuff();} 最佳答案 GCD没有直接的方法,但您可以使用NSOperationQueue并调用方法cancelAllOperations。NSOperati

thread-safety - 有人可以在这种情况下为我解释 dispatch_async()

我在单独的类中有以下方法:classAPI:NSObject{vardata=NSData()vardelegate:APIProtocol?funcgetItems(callback:(Array)->()){leturlPath:NSString="http://localhost:3000/files"leturl=NSURL(string:urlPath)letrequest=NSMutableURLRequest(URL:url)request.HTTPMethod="GET"request.addValue("application/json",forHTTPHeaderF

parallel-processing - Swift 是否具有通过 Grand Central Dispatch 的 dispatch_async 进行并行编程的结构?

我有兴趣采用新的Swift编程语言。我维护的代码库通过C++GrandCentralDispatch扩展(dispatch_async等)广泛使用多核处理有没有审查过Swift现状的人知道这种语言是否能够以类似的方式访问GCD? 最佳答案 是的,虽然我在Playground上没有取得太大的成功,但确实如此。在一个真实的项目中它应该工作。所有iOS8和OSX10.10文档都显示了GCD方法的Swift语法。我在当前项目中为单例使用dispatch_once,它工作得很好:NSOperation和NSOperationQueue都在底层

swift - dispatch_after 快速解释

我目前正在做一个项目,其中一部分我需要在一段时间后取消突出显示一个按钮。我决定使用dispatch_after。我已经设法让它工作了,但是有人能解释一下这行代码是如何工作的吗?我一直无法理解dispatch_after究竟是如何工作的。dispatch_after(dispatch_time(DISPATCH_TIME_NOW,Int64(1000*Double(NSEC_PER_MSEC))),dispatch_get_main_queue()){self.redButton.highlighted=false} 最佳答案 让我们

ios - 如何在 Swift 中退出 "DispatchQueue.main.asyncAfter"

我想在调用deinit时退出“DispatchQueue.main.asyncAfter”。subView.swiftDispatchQueue.main.asyncAfter(deadline:.now()+5.0){self.doSomething()}funcdoSomething(){ifself.subView.flgA==false{//errorbecausesubView'sdeinitisalreadycalled//...}}当ViewController执行_=self.navigationController?.popViewController(animate

ios - 在 Alamofire 请求后,我是否需要 DispatchQueue.main 来更新 UI?

我正在学习有关使用REST/web请求的教程。在本教程中,我们正在开发一个Pokedex应用程序,在该应用程序中,我们使用Alamofire从API中获取Pokemon详细信息,然后在我们的UI中显示该数据。相关代码如下:typealiasDownloadComplete=(Bool)->()//ModelclassfuncdownloadPokemonDetails(completed:@escapingDownloadComplete){Alamofire.request(_pokemonURL).responseJSON{(response)invarsuccess=trueif

ios - 为什么我的代码只能在 DispatchQueue.main.async block 内运行?

这个问题在这里已经有了答案:CodeonlyworkswithinaDispatchQueue.main.asyncblock,why?(1个回答)关闭6年前。我编写这段代码是为了在用户开始编辑UITextField时选择所有文本:@IBActionfunconEditingBegin(_sender:Any){print("editingbegan")lettextfield=senderas!UITextFieldtextfield.selectAll(nil)}但它不会工作,直到我将textfield.selectAll(nil)行包含在DispatchQueue.main.as

swift - "Scene is modified within a rendering callback of another scene."如何解决这个错误?

我正在使用ARKit图像跟踪配置,一旦检测到图像,图像上就会弹出3D场景。但是当我设置两个不同的图像触发两个不同的场景文件时,一张图像总是在同一张图像上弹出两个不同的场景文件。我敢肯定图像不同,名称不同,场景文件不同,场景的内容也不同。检测到图像后,控制台中也会弹出以下错误:[SceneKit]Error:Sceneismodifiedwithinarenderingcallbackofanotherscene().Thisisnotallowedandmayleadtocrash这个错误有什么原因和解决办法吗? 最佳答案 我在AR

ios - 从 LaunchScreen 转到 Main.Storyboard 中的 viewController?

我有一些我想在我的LaunchScreen中执行的逻辑,如果检查没问题,我想转至一个viewController,如果不行,我想转至另一个,这可能吗? 最佳答案 IgotsomelogicIwanttodoinmyLaunchScreen现在我明白了这个问题,我可以回答:不要。稍后执行耗时的逻辑。您的工作是快速启动。您需要退出applicationDidFinishLaunchingWithOptions,退出viewDidLoad,然后启动。此时显示什么由您决定;如果您有一些耗时的事情(在您的情况下,这听起来像是您正在联网或在为表

ios - Storyboard!与 UIStoryboard(名称 : "Main", 包:无)

我进入了一个具有以下声明的项目:UIStoryboard(name:"Main",bundle:nil).instantiateViewControllerWithIdentifier("asdf")as!AsdfViewController我一直使用storyboard!来做到这一点。据我了解,storyboard!将始终给我UIStoryboard(name:"Main",bundle:nil)。这是一个危险的假设吗?我知道如果您想引用不同的Storyboard文件,您可能想使用UIStoryboard的官方构造函数,但是将其缩写为storyboard是否安全!如果您确定要实例化的