私は奇妙なエラーだと思うものを持っていますが、もちろん私はiPhone開発に比較的慣れていないので、結局のところそれほど奇妙ではない可能性があります.
追跡しているオブジェクトの配列(NSMutableArray)があります(ユーザーがボタンに触れるたびに配列に追加されます)私がやろうとしているのは、配列が特定の値に達したときです新しいオブジェクトを追加します配列の先頭に移動し、配列内の最後のオブジェクトを削除します。コードをステップ実行すると、すべてが機能し、オブジェクトは削除されますが、アプリはクラッシュします...アプリがクラッシュしたときにデバッガーはコードのどの行にもありません。アプリにはまだループやタイマーがないので、できます。実行中のものは他に考えられません。
クラッシュの直前に実行されるコードは次のとおりです
if([objectArray count] > 10)
{
MyObject *objectToRemove = [[MyObject alloc] init];
objectToRemove = [objectArray objectAtIndex:10];
[objectArray removeObjectAtIndex:10];
[objectToRemove removeFromSuperview];
}
このコードの主なポイントは、ユーザーがボタンに触れるたびにオブジェクトが画面に追加されて表示され、オブジェクトの数が 10 に達してユーザーがもう一度ボタンに触れると、追加された最初のオブジェクトが削除され、新しいオブジェクトが表示されます。removeObjectAtIndex 行をコメントアウトすると、すべてが意図したとおりに機能しますが、配列は拡大し続けます。
UIview が削除された後、オブジェクトを削除しようとしましたが、アプリは同じように動作します。別のインデックス (IE 3) で配列からオブジェクトを削除しようとすると、アプリはクラッシュしませんが、期待した結果が得られません。しかし、私が言ったように、コードは正常に実行され、行の実行前後に配列の数をチェックすると、値はそれぞれ11と10です。
あなたが提供できる助けをいただければ幸いです。
BWC