1

Core Data に問題があります。viewcontroller1Core Data モデルにデータが取り込まれた配列から取り込まれたテーブル ビューがあります。セルが選択されるとviewcontroller2、保存されたデータを表示できる へのプッシュ セグエが実行されます。そこから、「編集」というボタンがあり、選択すると、viewcontroller3そのデータを編集できる場所にモーダル セグエが表示されます。編集したデータを保存するためのコードを次に示します。

//editModel

[self.editModel setValue:self.editNameTextField.text forKey:@"name"];
[self.editModel setValue:self.editTextView.text forKey:@"text"];
[self.editModel setValue:[NSDate date] forKey:@"date"];

NSError *error;
if (![[self.delegate managedObjectContext] save:&error])
{
    NSLog(@"Can't save the edit: %@", [error localizedDescription]);
}

if (self.delegate)
    [self.delegate dismissEdit:self];
else
    NSLog(@"There is no delegate");

ただし、これを呼び出そうとするたびに、NSLog を取得します。Can't save the edit: (null)

viewcontroller2変更を反映します。のテーブル ビューと同様viewcontroller1です。しかし、iOS シミュレーターを終了して再度実行すると、編集プロセス前のデータしか取得できません。ヘルプ?

4

1 に答える 1

0

ほとんどの場合、管理オブジェクト コンテキストは によって使用可能にされていませんdelegate。から取得するのではなくdelegate、各管理対象オブジェクトには追加先の管理対象オブジェクト コンテキストへのリンクがあるため、次の操作を実行できます。

[self.editModel.managedObjectContext save:&error]
于 2013-07-24T14:24:28.883 に答える