0

popViewController を使用すると、アプリケーションがクラッシュします。NSZombie を使用すると、次のようになります。

2011-07-15 13:20:03.334 Question[27412:207] *** -[CFString release]: message sent to deallocated instance 0x4c8a090

これを解釈する方法や、参照されているインスタンスを見つける方法が完全にはわかりません...

次の行を追加すると、アプリがクラッシュします。

-(void) finishQuestionnaire:(id)sender{
    //go back to main manual
    [self.navigationController popViewControllerAnimated:YES];
}

これは問題ではないと思います。読み込みが問題だと思います...

4

5 に答える 5

1

同様の問題があり、このエラーを解決するために丸一日無駄にしました...私の場合、次のような文字列がありました
str = [[NSString alloc] initWithString:@"a string"];

それから私は好きなようにチャンチしました

str = [NSString stringWithFormat:@"%@",aVarible];

そしてそれは解決されました...

于 2011-07-15T13:00:04.040 に答える
0

これは、オブジェクトをリリースし、リリースされたオブジェクトを使用していることを意味します。retain プロパティを使用すると、このエラーを処理できます。もう 1 つお伝えしたいのは、ビルドを誰かに送信する前に、NSZombieEnabled を NO に削除することです。

于 2011-07-15T12:37:27.683 に答える
0

オブジェクト(NSString)を解放しすぎているようです。つまり、すでに解放されているオブジェクトを解放しています。すでにどこかで文字列を解放しているかどうかを確認してください。

于 2011-07-15T12:27:36.697 に答える
0

有効にした場合NSZombie、割り当て解除されたオブジェクトを参照している行で壊れるはずですが、そうではありませんか?

上記のメッセージによると、既に割り当て解除された のインスタンスを解放しようとしていますNSString

于 2011-07-15T12:27:37.263 に答える
0

与えられた情報から、すでにリリースした NSString オブジェクトを使用していると言えます。インストゥルメントで NSZombie を使用したことがある場合は、viewController とクラッシュしているメソッドを含むスタック トラックを見つけることができます。アクセスしているオブジェクトを見つけるのは非常に簡単です。

于 2011-07-15T12:29:21.987 に答える