我正在使用UIManagedDocument来管理我的数据。我创建了模型并使用它,一切似乎都正常,但我的更改没有被写回SQLite存储。
UIManagedDocument的文档说自动保存应该负责将数据持久化到数据库中,但似乎并没有发生这种情况。
也许 Core Data 没有正确获知到项目集合已经发生了变化,但我不知道具体出了什么问题。
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存储,但是观察Instruments时,我发现它从未发生。
项目集合是NSOrderedSet类型,并且由于此项的评论:
我已经向持有该集合的对象添加了addItemsObject:方法:
- (void)addItemsObject:(MyItem *)value
{
NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.items];
[tempSet addObject:value];
self.items = tempSet;
}
也许 Core Data 没有正确获知到项目集合已经发生了变化,但我不知道具体出了什么问题。