【发布时间】:2010-12-17 10:32:02
【问题描述】:
我想知道是什么原因造成的。 我的代码中有几个使用 performSelectorInBackground 调用的方法。 在这些方法中的每一个中,我都有一个 Autoreleasepool,它在开始时被分配/初始化,并在方法结束时被释放。
这在 iOS 3.1.3 / 3.2 / 4.2 / 4.2.1 上完美运行,但它在 iOS 4.0 上致命地崩溃,并在调用 [myPool release] 后发生 EXC_BAD_ACCESS 异常。
在我注意到这种奇怪的行为后,我正在考虑重写我的部分代码并让我的应用程序“不那么并行”,以防客户端操作系统是 4.0。
在我这样做之后,应用程序崩溃的下一个点是来自 Apples Reachability“框架”的 ReachabilityCallback-Method。
好吧,现在我不太确定该怎么做。
我在线程方法中所做的事情是非常简单的 xml 解析(没有可可调用或会影响 UI 的东西)。在每个方法完成后,它会发布一个通知,协调线程会监听,一旦所有并行化的方法完成,协调线程就会调用视图控制器等......
我完全不知道是什么导致了这种奇怪的行为。尤其是因为 Apples 代码也失败了。
非常感谢任何帮助!
谢谢, 山姆
【问题讨论】:
-
您使用的是哪个编译器? (GCC、LLVM 和 GCC 还是 LLVM?)
-
你的 gdb 描述是什么?
-
我正在使用 GCC 进行编译...@raaz:我如何获得 gdb 描述?
标签: iphone objective-c cocoa-touch nsautoreleasepool