0

コアデータでは、最初に以下を使用してオブジェクトを追加/属性値を設定します:

-(IBAction)save{

if (self.managedObjectContext == nil)
{
    self.managedObjectContext = [(RootAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}

    Frame *f = [NSEntityDescription insertNewObjectForEntityForName:@"Frame" inManagedObjectContext:self.managedObjectContext];

        f.typeLabel = self.textFieldtext.text;

    [self dismissViewControllerAnimated:YES completion:nil];

    NSError *error;

    if (![self.managedObjectContext save:&error]) {
        NSLog(@"Error");
    }
}

通常は、次を使用して値を編集します。

-(IBAction)save{
[self.f setValue:self.newTextfield.text forKey:@"typeLabel"];

[self dismissViewControllerAnimated:YES completion:nil];
NSError *error;
if (![self.managedObjectContext save:&error]) {
        //Handle Error
}

}

Aを使用すると明らかに少し異なりますNSFetchedResultsController

私の質問は、どうすればプロパティを設定し、を使用して編集できるのNSFetchedResultsControllerでしょうか?

4

1 に答える 1

2

フェッチされた結果コントローラーは、フェッチ要求とテーブル ビューの間のリンクとして機能します。有用な部分は、フェッチ要求の結果に影響を与える管理オブジェクト コンテキストに変更を加えた場合、FRC が自動的にこれらを検出し、テーブル ビュー データソース コードに結び付けて保持できるさまざまなデリゲート メソッドを送信することです。テーブルを最新の状態にします。こちらの「テーブル ビュー データソース メソッドの実装」を参照してください

上記のコードは、フェッチ要求の結果を表示するテーブル ビューから呼び出され、新しい項目の追加に使用されるモーダル ビュー コントローラー内に含まれていない限り、これとはあまり関係ありません。その場合、上記のコードは同じですが、テーブル ビューに戻ると、新しいデータが既に含まれています。

于 2012-11-30T07:31:30.347 に答える