私は、このエラーメッセージを受信:診断エラー:「割り当て解除オブジェクトに送信リリース」
message [CFString release] sent to deallocated object at 0x........
は、どのように私はこの問題の原因となった文字列を知ることができますか?デバッガを使用しているのはCFString
ですか?
私は、このエラーメッセージを受信:診断エラー:「割り当て解除オブジェクトに送信リリース」
message [CFString release] sent to deallocated object at 0x........
は、どのように私はこの問題の原因となった文字列を知ることができますか?デバッガを使用しているのはCFString
ですか?
XCode 4を使用している場合は、ゾンビの計測器(ビルドとプロファイル)を使用します。このメッセージが表示されたら、矢印を押して、文字列が保持され、解放されたすべての場所の一覧を取得できます。
http://www.cocoadev.com/index.pl?NSZombieEnabledを参照してブレークポイントを設定し、スタックを検索して、発生したリリースステートメントを見つけます。
firtでは、alloc/dealloc関数のコードを調べて数えることができます。
「count alloc == count dealloc」となっています。
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]);
保持カウントを使用してデバッグしません。それはあなたに有用なことを教えてくれません:http://stackoverflow.com/questions/4636146/when-to-use-retaincount。 –
また、インストゥルメントでプログラムをテストして、メモリリークが発生しているかどうかを確認してください:) – iTux
インストゥルメントとTHXをデバッグしてみてください。
第二段階、いくつかの建設を探して! – CarmeloS