我是 cocoa/xcode 的新手,我正在 Xcode 4.3.2 中编写一个可可应用程序我的目标是 10.5,基础 SDK 是 10.7。我必须支持 10.5 以后的版本。
我使用了手动内存管理,该应用程序在 10.7、10.8 和 10.9 上运行良好。它似乎也适用于 10.6。
在 10.5(我没有系统,但来自报告)
我收到很多这些错误,
Oct 22, 2013 3:44:08 PM: *** _NSAutoreleaseNoPool(): Object 0x1126f49b0 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x7fff823a11e8 0x7fff822b9771 0x10002cfb0 0x10002bc19 0x10002add1 0x7fff822bfd35 0x7fff8467ed0f 0x7fff8467ebd1)
Oct 22, 2013 3:44:08 PM: *** _NSAutoreleaseNoPool(): Object 0x1126f4c90 of class NSCFSet autoreleased with no pool in place - just leaking
Stack: (0x7fff823a11e8 0x7fff822b9771 0x7fff82315748 0x10002bc52 0x10002add1 0x7fff822bfd35 0x7fff8467ed0f 0x7fff8467ebd1)
在我的代码中,我对主线程以外的线程使用了自动释放池
@autoreleasepool
{
//whatever code calling autorelease on objects..
}
对于主线程,假设它是自动提供的,我没有提供任何池。我想知道上述错误是否是因为 autoreleasepool 块与 10.5 不兼容?或者我对主线程自动释放池的假设即使对于 10.5 也会自动提供是不正确的?这至少在 10.7 以后是正确的。我不确定 10.5 发生了什么。
任何建议都会很棒..