草庐IT

double-dispatch

全部标签

ios - 如何在前一个 dispatch_async 完成时执行第二个 dispatch_async?

我想按顺序添加一个dispatch_async,但我不希望它们随机启动。我想举个例子:dispatch_async1开始...dispatch_async1结束。dispatch_async2开始...dispatch_async2结束。dispatch_async3开始...dispatch_async3结束。我需要更新一个sqlite,第一次调度中的信息对于第二次调度是必需的...-(void)connectionDidFinishLoading:(NSURLConnection*)connection{NSLog(@"%@",[connectioncurrentRequest])

iphone - dispatch_async 是否在 for 语句中有什么区别

我想知道在以下表示为“A”和“B”的方法中使用dispatch_async之间有什么区别。Adispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{for(inti=0;iBfor(inti=0;i 最佳答案 语句A产生一个新任务,它恰好包含一个循环。语句B产生10个新任务,其中部分或全部任务可能要等到for循环完成后才能完成。 关于iphone-dispatch_async是否在for语

ios - Objective C 将 double 值截断为小数点后两位

我正在尝试将double值截断为两位小数。我尝试使用:[highScoreLabelsetText:[NSStringstringWithFormat:@"Highscore:%.2f",finalTime]];但我发现它在2位后四舍五入了数字。这使得我向游戏中心报告的分数和应用程序中显示的分数不同。如何在不四舍五入的情况下去掉小数点的其余部分? 最佳答案 @dasdom回答很棒。但是如果你不喜欢隐式转换,你可以使用finalTime=trunc(finalTime*100)/100;如果您收到“trunc”函数未知的错误-只需导入

ios - 为什么 dispatch_async 不好?完成相同任务的更好方法是什么?

dispatch_async(dispatch_get_main_queue(),^{[self.teamNamebecomeFirstResponder];});我和一个friend聊天,他告诉我他听说使用dispatch_async不是很好,但他不确定为什么。我在谷歌上查了下,没有发现这段代码错误的原因我如何改进这段代码?有没有更好的方法来做到这一点?注意:我还在学习iOS编程,所以我对这整件事都是陌生的。 最佳答案 您的friend错误地认为dispatch_async是“坏的”。但是要求另一个处理器做像becomeFirst

ios - 必须分派(dispatch)到 iOS 11 中的主线程

在iOS11之前,我能够动态地重新加载TableView数据,而无需将重新加载分派(dispatch)到主线程。但是,现在我正在安装了iOS11的设备上进行测试,似乎我必须将每个UI更新分派(dispatch)到主线程才能使其正常工作。否则我最终会得到空的UI元素。即具有所有行但没有标签的TableView,或没有标题的按钮等。有谁知道iOS11中发生了什么变化要求这样做?有办法关闭它吗? 最佳答案 从远古时代开始,Apple就强调所有与UI元素的交互必须发生在主/GUI线程上。不听从这个建议会导致奇怪的行为:有时它会工作正常,其他

objective-c - Objective-C : Get Substring between Double Quotes

获取双引号之间的每个子字符串并将其放入数组的最佳方法是什么?例如,如果字符串(NSString)是:@"abcd\"efgh\"ijklm\"no\"p\"qrst\"uvwx\"y\"z"我想要的结果是:{@"efgh",@"no",@"qrst",@"y"}作为一个NSArray。 最佳答案 这应该让你开始:NSString*str=@"abcd\"efgh\"ijklm\"no\"p\"qrst\"uvwx\"y\"z";NSMutableArray*target=[NSMutableArrayarray];NSScanner

ios - dispatch_async 用于从 url 获取许多图像

我想从不同的url获取许多图像并将其设置为图像的按钮。我试图像上面显示的那样执行此操作,但没有任何反应。当我访问这个ViewController时,它没有任何按钮图像,也没有显示横幅View...。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^(void){NSURL*url=[NSURLURLWithString:[pictureUrlobjectAtIndex:i]];NSData*data=[[NSDataalloc]initWithContentsOfURL:url];d

iOS - 调用 dispatch_async 时没有堆栈跟踪

我已经创建了一些示例代码来演示我的问题。-(void)test{void(^handler)(void)=^{NSArray*test=[NSArrayarray];[testobjectAtIndex:5];};handler=[handlercopy];dispatch_async(dispatch_get_main_queue(),handler);}当我调用测试方法时,我没有得到堆栈跟踪。调试器停在main.m并突出显示此行intretVal=UIApplicationMain(argc,argv,nil,NSStringFromClass([FantasyUniversalA

ios - 使用 GCD 复制大文件 - Dispatch IO 消耗大量内存

我正在将大型文件复制操作从NSStream转换为使用GCD的调度IO实现。当将两个1GB的文件一起复制到一个2GB的文件中时,应用程序使用GCD会消耗2GB的内存。NSStream实现仅占用50MB。在Instruments中,我可以看到start_wqthread调用分配了1MBblock,正如我为调度IO高水位线请求的block大小,但在写入输出流后没有被释放,他们四处闲逛。缓冲区写入输出流后如何释放缓冲区?如果我在Xcode中创建一个全新的OSXCocoa应用程序并将以下代码粘贴到applicationDidFinishLaunching:方法中,它将消耗500-2000MB的内

ios - :hover on ios mobile devices turns into double-touch instead of hover

首先,这不是以下的克隆:iPad/iPhonehoverproblemcausestheusertodoubleclickalink因为我想要一个纯CSS的答案。此链接中的所有答案都需要js或jQuery,并且一个CSS答案涉及背景图像。我正在尝试更改不透明度,仅此而已。CSS希望让自己适应移动革命,但我看到的每个创建悬停效果的简单“touchDown”(又名触摸悬停)解决方案都需要javascript或jQuery。下面是一些简单的代码来说明我的意思:.btn{border-radius:5px;display:block;opacity:1;在Chrome和Safari中测试