2009-03-21 3 views
1

私はこの機能を持っている:奇妙なリーク[NSStringObject UTF8Stringを]を使用して

これはランタイムエラーになり
-(void) debugPrint 
{ 
    printf("name: %s", [_name UTF8String]); 
} 

は、[セッションが2009年3月21日15時02分26秒-0700で開始。] スタック:(0x9234c73f 0x92258e32 0x9226d505 0x9226d0e1 0x9226d0e1 0x2406 0x22ce(0x9234c73f)):15:02:26.319 TGUI [20063:10b] *** _NSAutoreleaseNoPool():NSCFDataクラスのオブジェクト0x10a290がプールなしでオートリースされました。 0x20be) 名前:名前

私は[_name cString]を実行すると、うまくいきます。

答えて

0

おっと、私はmain()で "return NSApplicationMain(argc、(const char **)argv);"の呼び出しの前に、すべてをdebugPrintに入れていました。これは問題を引き起こしていました。

2

このメソッドを呼び出すスレッドにはNSAutoreleasePoolがないため、自動解放されたオブジェクトにはプールがありません。スレッドごとにNSAutoreleasePoolを設定する必要があります。 NSAutoreleasePoolドキュメントのイントロでは、このアイデアについて詳しく説明しています。

関連する問題