私は cocoa/xcode を初めて使用し、Xcode 4.3.2 で cocoa アプリを作成しています。私のターゲットは 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)
私のコードでは、メインスレッド以外のスレッドに autoreleasepools を使用しました
@autoreleasepool
{
//whatever code calling autorelease on objects..
}
メインスレッドについては、プールが自動的に提供されると仮定して、プールを提供していません。上記のエラーは、autoreleasepool ブロックが 10.5 と互換性がないためでしょうか? それとも、10.5 でもメイン スレッドの自動解放プールが自動的に提供されるという私の仮定は正しくないのでしょうか? これは、少なくとも 10.7 以降では正しいです。10.5で何が起こっているのかわかりません。
どんな提案も素晴らしいでしょう..