ARCに指示する方法は、別のスレッドで使用されているメインスレッドのオブジェクトを解放しませんか? 放すのを防ぐには?ARC、コアデータとマルチスレッド、ARCがオブジェクトを解放する
-(void)someFunc
{
array = ... //fetching array of entities from a core data
for(SomeObject * obj in array)
{
NSSomeOperation * op = [[NSSomeOperation alloc] initWithValue:obj];
//start operation
}
//it seems here ARC release array and all items
}
アレイはコアデータからフェッチされます。
あなたはカスタムNSOperationを持っているか、実際にはNSOperationで 'initWithValue:'を呼び出していますか? – gcamp
カスタム。私は質問のテキストを更新しました。 –
あなたの問題はARCではなく、管理されたオブジェクトをスレッド間で共有しようとしているという事実です。 CoreDataはスレッドセーフではないため、別のコンテキストを使用して、スレッドごとに管理オブジェクトをフェッチする必要があります。 – Rog