割り当てられて初期化されたインスタンス変数 MyObject があるとします。次に、私がこれを行うと言います:
[backgroundThread performBlock:^{
//do something with MyObject that might take some time
}];
[self dismissModalViewController]; //this releases all instance variables, right?
何が起こるかというと、バックグラウンドでオブジェクトに対して何らかの作業を行うNSManagedObjectContext
呼び出しがあります。backgroundThread
これはすぐに戻り、バックグラウンドで作業を行ってからdismissModalViewController
呼び出され、すべてのインスタンス変数の割り当てを解除します。では、モーダル ビューが閉じられたがbackgroundThread
、オブジェクトを使用する必要がある場合はどうなるでしょうか。これは問題ですか?回避策は何ですか?
もう 1 つ: この MyObject は管理オブジェクト コンテキスト backgroundThread に挿入されます。これは、ビューを閉じた後でも、この NSManagedObjectContext がオブジェクトを保持することを意味しますか?
ARCを使用しています。