Вот что у меня есть:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"NoteObject" inManagedObjectContext:appDelegate.managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(parentNoteId == %@) AND (noteId!=rootNoteId)", appDelegate.currentNoteId];
[fetchRequest setPredicate:predicate];
NSError *error;
[appDelegate.arrayOfNotes setArray:[appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error]];
NoteObject *note=[appDelegate.arrayOfNotes objectAtIndex:0];
[note.arrayOfTags addObject:someObject];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
Выборка работает нормально, а добавление объекта в arrayOfTags
работает и отражается в пользовательском интерфейсе.Однако, когда я выхожу из приложения и возвращаюсь, в arrayOfTags
отсутствует тот, который я добавил (но у него есть два других, поэтому я знаю, что массив работает правильно).По какой-то причине он не сохраняется.
(NoteObject
- это подкласс NSManagedObject
, а arrayOfTags
- преобразуемое свойство сущности.)
Я что-то не так делаюздесь?
Редактировать: вот как я добавляю новую заметку, которая отлично сохраняется, даже с arrayOfTags, и все сохраняется, когда я выхожу из приложения и возвращаюсь.
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *noteEntity = [[appDelegate.managedObjectModel entitiesByName] objectForKey:@"NoteObject"];
NoteObject *tempNote = [[NoteObject alloc] initWithEntity:noteEntity insertIntoManagedObjectContext:context];
[tempNote.arrayOfTags addObject:@"tag1"];
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
Только когда я делаю изменения, он не сохраняется должным образом ..