0

キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています。理由:'-[__ NSCFType next]:認識されないセレクターがインスタンスに送信されました'この行は"[self autorelease];"であるため、このエラーが発生しています。この行にコメントすると、例外は発生しませんが、アプリが非常に遅いように見えるので、その行の代わりにその行を何を書いたのか教えてください

if(sqlite3_step(statement)==SQLITE_ROW)
{                
     pagestr = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,0)];
     //dateLabel.text=previousDate;
     //textView.text=pagestr;
     EditorPage* prev= [[EditorPage alloc] initWithNibName:@"EditorPage" bundle:nil];
     prev.dateString= previousDate;
     prev.bodyString= pagestr;
     NSArray* array= [[NSArray alloc] initWithObjects:prev,@"forward",nil];
     [[NSNotificationCenter defaultCenter] postNotificationName:@"next EditorPage" object:array];
     [prev autorelease];
}       
4

1 に答える 1

1

いつしますか[ self autorelease ]?それは非常に珍しいことだと思います-おそらく間違っています。

このメッセージは、のオブジェクトのにメッセージを送信していることを意味しますNSCFType

このようなメッセージは、多くの場合、解放され、その後メモリが別のタイプのオブジェクトに再割り当てされたオブジェクトにメッセージを送信することによって発生します。

この種の問題を追跡するためにゾンビをオンにすることができます。また、コードをARCに移動して、保持/解放の問題を回避することもできます。

于 2012-08-25T06:27:52.577 に答える