![iphone – 正在调用 – [NSRunLoop runUntilDate:]一个好主意?,第1张 iphone – 正在调用 – [NSRunLoop runUntilDate:]一个好主意?,第1张](/aiimages/iphone+%E2%80%93+%E6%AD%A3%E5%9C%A8%E8%B0%83%E7%94%A8+%E2%80%93+%5BNSRunLoop+runUntilDate%EF%BC%9A%5D%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%B8%BB%E6%84%8F%EF%BC%9F.png)
更多信息:
我现在有一个从REST服务获取数据的项目.需要获得的一个关键信息是具有有效数据的日期范围.这只是一小部分数据,只需要获取一次,所以我认为处理它的最佳方法是让属性在局部变量为零时下载数据.我正在使用ASIhttpRequest和ASINetworkQueue,因此默认情况下一切都是异步的,为了使其工作,在下载和处理数据之前,此属性不能返回.这是我的代码的大纲,变量的名称已被更改以保护无辜:
__block BOol isWorking = YES;__block ASIhttpRequest *request = [[[ASIhttpRequest alloc] initWithURL:/*actual URL*/] autorelease];[request setCompletionBlock:^{ // set local variable isWorking = NO;}];[request setFailedBlock:^{ // show alert to user isWorking = NO;}];[queue addOperation:request];while (isWorking) { [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];} 再次,这似乎工作得很好.使用这种方法有任何潜在的问题吗?
解决方法 除非重叠的调用树完全可重入,否则必须确保不要从正在调用的运行循环调用的任何方法中执行此 *** 作.Cocoa touch UI代码没有记录为可重入(事实上,Apple DTS有警告/提示它不是),因此如果您的获取数据处理程序可以通过UI方法(或其他非方法)进行调用可以在UI运行循环中调用的-reentrant代码),不建议从内部调用UI运行循环.
总结以上是内存溢出为你收集整理的iphone – 正在调用 – [NSRunLoop runUntilDate:]一个好主意?全部内容,希望文章能够帮你解决iphone – 正在调用 – [NSRunLoop runUntilDate:]一个好主意?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)