ARC无法在iOS 4.3中运行

时间:2011-10-16 10:44:56

标签: iphone objective-c ios automatic-ref-counting

我将我的项目转换为使用ARC,我在iOS 5中运行良好。但是当在4.3模拟器上运行时,我收到了很多这样的消息:

  

2011-10-16 12:23:29.915 iRoster [1604:1300b] * __NSAutoreleaseNoPool():EKCalendar类的对象0x5176e60自动释放,没有池到位 - 只是泄漏

我想我可以放置很多@autoreleasepool,但我的印象是可选的。奇怪的是它只在4.3

上运行时出现

我该怎么办?

编辑: 我现在已经放置了一些@autoreleasepool,这大大减少了消息,所以情况似乎就是这样。

1 个答案:

答案 0 :(得分:1)

如果你自己在应用程序逻辑中有自己的自动释放池,那么你需要用@autoreleasepool构造替换它们,编译器会相应地处理它们。

转换为ARC并不一定意味着不再需要现有的自动释放池 - 您仍然需要单个池来包含临时自动释放的对象,例如,其他线程中的循环,因此它们不会永远花费在内存和/或开始泄漏这些线程。请参阅this Apple documentation on using autorelease pools