3

高速列挙で反復されるコレクションを変更することは想定されていませんが、それがどの程度であるかはよくわかりません。以下のコードで問題は発生しませんでしたが、運が良かったのかどうかはわかりません。誰も明確な答えを持っていますか?

for(NSManagedObject *myObject in myArray) {
   [myObject.managedObjectContext deleteObject:myObject];
}

したがって、実際には配列を変更していませんが、コンテキストからオブジェクトを削除しています。これにより、配列が間接的に変更される可能性がありますが、それについてはわかりません..

4

1 に答える 1

3

配列自体を変更しない限り、配列内のオブジェクトで必要なことは何でもできます。

そのコードは完全に受け入れられます。

ただし、削除するオブジェクトが多数ある場合は、他のことも考慮する必要があります (リレーションシップのプリフェッチ、自動解放プールの使用、MOC をクリーンな状態に保つなど)。

于 2012-09-02T21:04:25.487 に答える