我有一个连接到某个服务器以获取数据的应用程序。好吧,我正在使用NSThreads
,似乎在模拟器中完美运行。一旦我在iPhone设备上安装了应用程序,它就会停止工作。
我不知道这是否是一个常见问题。如果可以替代NSThread
?
注意:我尝试NSOperations
但仍然遇到同样的问题。
答案 0 :(得分:0)
如果NSThread
和NSOperation
都不起作用,那么您的代码会遇到一些更基本的问题。这两种方法在设备和模拟器上同样有效(否则它们会毫无意义)。我强烈建议您更密切地调查明显的问题。更有可能的是,你有某种竞争条件,你的设备上使用当前版本的操作系统触发的特定时间触发,而你的当前版本的SDK的模拟器没有。在这个领域iOS上最常见的错误可能是没有观察到UIKit只在主线程中可用的主要部分。
但要完全回答这个问题:异步执行工作的主要选择是:
dispatch_async
NSObject -performSelectorOnBackground:withObject:
另请注意,NSURLConnection
具有内置的异步操作模式,可以向主线程报告,这意味着您实际上不必为自己做任何明确的事情。 Apple强烈建议您使用它而不是构建自己的系统,因为它被编写为比NSThread
解决方案更强大的功能和处理器效率。