0

次のエラー メッセージが表示されました。

メッセージ [CFString release] が 0x の割り当て解除されたオブジェクトに送信されました........

この問題の原因となった文字列を特定するにはどうすればよいですか? CFStringデバッガーを使用しているものを特定できますか?

4

3 に答える 3

3

XCode 4 を使用している場合は、Zombie インストゥルメント (ビルドとプロファイル) を使用します。このメッセージが表示されたら、矢印を押すと、文字列が保持および解放されたすべての場所のリストを取得できます。

于 2011-04-25T04:40:09.943 に答える
1

http://www.cocoadev.com/index.pl?NSZombieEnabledを参照してブレークポイントを設定し、スタックをさかのぼってリリース ステートメントが発生した場所を見つけます。

于 2011-04-25T04:41:10.163 に答える
-1

最初は、alloc/dealloc 関数のコードを検索して、数えることができます。
count alloc == count dealloc」のとおりです。
2 番目のステップでは、いくつかの構造を探します。

NSString *myString = [NSString stringWith...]; // Auto alloc/init with content
[myString release]; // Release before use
NSLog(@"%@", myString); // Use after release

またはでデバッグしてみてくださいNSLog(%"retain count :%d", [myString retainCount]);

于 2011-04-25T04:43:23.247 に答える