草庐IT

dispatch_main_queue_callback

全部标签

Swift:从 dispatch_async 内部返回结果

所以我这里有一段代码不起作用。这是因为它在尝试解包可选值时发现nil。这是因为它在异步方法中被初始化。我的问题是,如何在函数获取结果之前推迟返回函数?structDomain{varname:String?vartld:String?varcombined:String{get{returnself.name!+self.tld!}}varwhoIs:String{get{ifself.whoIs.isEmpty{varresult:String?dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAU

ios - 为什么在调用 `privateManagedObjectContext.perform` 时会发生崩溃(从 com.apple.main-thread(线程 1)排队)?

在关闭网络请求时,我使用私有(private)并发队列将对象插入到核心数据中,当我在私有(private)上下文中调用“执行”时发生崩溃。控制台中的崩溃消息:libc++abi.dylib:terminatingwithuncaughtexceptionoftypeNSException堆栈跟踪:导致崩溃的代码:API.sync(onlyMe,syncToken:syncToken){success,syncResponseinCoreDataUtils.privateContext.perform{//crashesonthisline....}}我的核心数据堆栈(不幸的是,目前位于

ios - 我是否需要在 DispatchQueue.main.async 中使用 autoreleasepool block

在Xcode8.2.1中为iOS应用程序使用swift3。我知道在新线程上分派(dispatch)某些处理时我需要一个自动释放池block。但是在主线程上分派(dispatch)时需要它吗?假设我们在主线程上并执行以下操作:DispatchQueue.global(qos:.background).async{autoreleasepool{//*****dosomethinginthebackground}//autoreleasepoolDispatchQueue.main.async{//*****dosomethingonthemainthreadwhenbackgroundj

ios - 入口点 (_main) 未定义。对于体系结构 x86_64 - 仅限 XCode UITesting

我仅在尝试运行UITest时遇到此错误。我没有使用Storyboard,构建的应用程序运行良好,单元测试也运行良好。在我的AppDelegate中我有@UIApplicationMain我的info.plist中没有Storyboard文件或对Storyboard文件的引用。尝试清理/重建,重新启动xcode即使录制UITests也能正常工作并且能够打开应用程序。就在我尝试运行实际测试时出现错误。也许我在某处缺少目标或需要向XCUIApplication启动参数添加一些内容?有什么想法吗? 最佳答案 由于单元测试有效,我最终比较了单

ios - dispatch_async 是否可以中断调用任务

假设我将任务异步分派(dispatch)到队列:{//weareonmainqueuedispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{print("taskB")});print("taskA")//somelongrunningworkprint("taskA")//somelongrunningworkprint("taskA")...}在任何情况下,分派(dispatch)的任务都可以中断从中分派(dispatch)它的任务吗?换句话说,是否会在打印所有“任务A”之前打印“

ios - LaunchScreen.storyboard 未打开 Main.storyboard 导航 Controller

我刚刚开始使用Swift(新手)开发一个新应用程序。我有Lau​​nchScreen.storyboard仅包含我的初始屏幕图像我有一个带有NavigationController的Main.storyboard连接到两个segues,Home和Registration。在ViewController.swift中,在viewDidLoad中,我决定调用哪个segue我的Main.Storyboard没有rootViewController,我需要决定在运行时显示哪个viewController时间。if(Settings.hasRegistrationCompleted()){per

ios - DispatchQueue.main.async {} 在 vi​​ewDidLoad

我想知道如果我从viewDidLoad方法在主队列中异步调用某些东西会发生什么。一个小实验向我展示了这些结果:这段代码:overridefuncviewDidLoad(){super.viewDidLoad()firstSelector()DispatchQueue.main.async{self.secondSelector()}foriin1...10{print(i)}thirdSelector()}funcfirstSelector(){print("Firstselectorfired")}funcsecondSelector(){print("Secondselectorf

ios - 使用 performBackgroundTask 将多个核心数据插入分派(dispatch)到 NSPersistentContainer 时合并冲突

我正在试验新的核心数据APINSPersistentContainer,我的印象是内部排队机制会阻止写入事务并发评估,详见堆栈溢出答案NSPersistentContainerconcurrencyforsavingtocoredataThewaythatalotofproshavebeendealingwiththeproblemforalongtime(evenbeforeNSPersistentContainerdidit)wastohaveanoperationqueuetoqueuethewritessothereisonlyonewritegoingonatatime,an

ios - 在 Swift 中,如何从 dispatch_time_t 获取 NSDate?

“Walltime”是GrandCentralDispatch使用的一种鲜为人知的时间格式。苹果在这里谈论它:https://developer.apple.com/library/ios/documentation/Performance/Reference/GCD_libdispatch_Ref/虽然有些事情确实很方便,但它是一个粘性wicket。很难让它与其他时间格式兼容,这就是我的问题所在。我可以通过将NSDate转换为timespec来制作walltime,然后使用dispatch_walltime:letnow=NSDate().timeIntervalSince1970l

swift - swift 3.0 中的 dispatch_group_async 函数

我的问题是如何在Swift3中正确翻译此函数,因为我注意到有很多关于dispatch_async的文档,但没有任何关于dispatch_group_async的文档>dispatch_group_async(group,dispatch_get_global_queue(QOS_CLASS_USER_INITIATED,0)){[unownedself]in 最佳答案 试试这个:letgroup=DispatchGroup()DispatchQueue.global(qos:.userInitiated).async(group:g