2

私はNSFetchedResultsControllerによって供給されるUITableViewControllerを持っています。それから、ユーザーは新しいデータを入力できるモーダルViewControllerを呼び出すことができます。これが始まると、以下のように、私は一時的なオブジェクトを作成:ユーザーが選択を行いどのようにNSFetchedResultsControllerの作業を中断できますか?

newPtr = [[Entry alloc] initWithEntity:[NSEntityDescription 
entityForName:@"Entry" inManagedObjectContext:self.nmocontext] 
insertIntoManagedObjectContext:self.nmocontext]; 

として、この「暫定」オブジェクトの属性は、NEWPTRは、設定されています。

問題は、モーダルViewControllerが表示されている間は、ベースのUITableViewControllerがアクティブのままであることです。 newPtrの必須属性がまだ設定されていないことがわかったときに、クラウドを引き起こしてしまいました。

NSFetchedResultsControllerがモーダルViewControllerが終了するまで私のマネージオブジェクトコンテキストを見るのを止めるにはどうすればよいですか?

答えて

1

は、私は自分自身にこれをテストしていませんが、可能なアプローチは、viewWillAppearviewWillDisappearを実装し、を消えますnil表示されますselfにfetchedResultsControllerデリゲートを設定することです。

OR

あなたの編集ウィンドウであなたのNSManagedObjectの属性を反映NSObjectのを作成することができます。ユーザーが属性の編集を完了したら(そして適切な検証ルールを実行した後)、それらをNSManagedObjectインスタンスに渡して、fetchedResultsControllerにそのジョブを実行させることができます。

+0

ありがとうございます!私が働くと思う非常に興味深い考え。私がやったことは(Stack Overflowが数時間落ちたので)fetchedResultsControllerを満たすためにnewPtrにいくつかの偽の属性を与えています。それは働いている... – ed94133

0

コアデータは、ネストされた管理オブジェクトコンテキストをサポートしているため、独立したキャンセル可能なチェンジセットを容易にサポートできる柔軟なアーキテクチャが可能です。子コンテキストでは、ユーザーが管理対象オブジェクトの変更を1つのトランザクションとして親に(そして最終的にはストアに保存して)コミットするか、破棄することができます。アプリケーションのすべての部分が、単にアプリケーションデリゲートから同じコンテキストを取得するだけであれば、この動作をサポートすることは困難または不可能になります。

関連する問題