UIManagedDocument не сохраняется

Я использую UIManagedDocument для управления своими данными. Я создаю модель и использую ее, и все вроде работает, но мои изменения не записываются обратно в хранилище SQLite.

В документации для UIManagedDocument говорится, что автосохранение должно позаботиться о сохранении данных в базе данных, но, похоже, этого не происходит.

    NSManagedObjectContext *moc = [doc managedObjectContext];
    NSError *error = nil;
    MyItem *itemToAdd = (MyItems *)[moc existingObjectWithID:(NSManagedObjectID *)itemsID error:&error];

Это выбирает объект, который я хочу добавить (и успешно).

   [itemContainer addItemsObject:itemToAdd];
   [doc updateChangeCount:UIDocumentChangeDone];

Это добавляет элемент в коллекцию элементов в другом объекте, а затем сообщает документу, что я закончил вносить изменения.

Я ожидал, что вскоре после этого изменения будут записаны в хранилище Core Data, но, наблюдая за инструментами, я вижу, что этого никогда не происходит.

Коллекция элементов - это NSOrderedSet, и из-за комментариев к этому элементу:

Исключение, созданное в аксессорах, созданных NSOrderedSet

Я добавил addItemsObject: к объекту, содержащему коллекцию:

- (void)addItemsObject:(MyItem *)value 
{
    NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.items];
    [tempSet addObject:value];
    self.items = tempSet;
}

Возможно, что-то идет не так, как Core Data сообщает, что коллекция элементов изменилась, но я не понимаю, как это сделать.

7
задан Community 23 May 2017 в 11:58
поделиться