NSThread在模拟器上工作但不在设备上工作

时间:2011-09-07 15:15:27

标签: ios cocoa-touch nsurlconnection nsthread

我有一个连接到某个服务器以获取数据的应用程序。好吧,我正在使用NSThreads,似乎在模拟器中完美运行。一旦我在iPhone设备上安装了应用程序,它就会停止工作。

我不知道这是否是一个常见问题。如果可以替代NSThread

注意:我尝试NSOperations但仍然遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

如果NSThreadNSOperation都不起作用,那么您的代码会遇到一些更基本的问题。这两种方法在设备和模拟器上同样有​​效(否则它们会毫无意义)。我强烈建议您更密切地调查明显的问题。更有可能的是,你有某种竞争条件,你的设备上使用当前版本的操作系统触发的特定时间触发,而你的当前版本的SDK的模拟器没有。在这个领域iOS上最常见的错误可能是没有观察到UIKit只在主线程中可用的主要部分。

但要完全回答这个问题:异步执行工作的主要选择是:

另请注意,NSURLConnection具有内置的异步操作模式,可以向主线程报告,这意味着您实际上不必为自己做任何明确的事情。 Apple强烈建议您使用它而不是构建自己的系统,因为它被编写为比NSThread解决方案更强大的功能和处理器效率。