ste*_*vex 7 core-data objective-c ios5 uimanageddocument
我正在使用UIManagedDocument来管理我的数据.我创建模型并使用它,一切似乎都在工作,但我的更改不会被写回SQLite存储.
UIManagedDocument的文档说自动保存应该将数据持久化到数据库,但这似乎并没有发生.
NSManagedObjectContext *moc = [doc managedObjectContext];
NSError *error = nil;
MyItem *itemToAdd = (MyItems *)[moc existingObjectWithID:(NSManagedObjectID *)itemsID error:&error];
Run Code Online (Sandbox Code Playgroud)
这将获取我想要添加的对象(并成功).
[itemContainer addItemsObject:itemToAdd];
[doc updateChangeCount:UIDocumentChangeDone];
Run Code Online (Sandbox Code Playgroud)
这会将项添加到另一个对象的项集合中,然后告诉文档我已完成更改.
我希望在此之后不久有一段时间可以看到写入Core Data商店的更改,但是在Instruments中观看,我发现它永远不会发生.
items集合是一个NSOrderedSet,由于对此项目的评论:
我已经为包含集合的对象添加了一个addItemsObject:
- (void)addItemsObject:(MyItem *)value
{
NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.items];
[tempSet addObject:value];
self.items = tempSet;
}
Run Code Online (Sandbox Code Playgroud)
也许出现了一些问题,Core Data被告知物品集合已经改变,但我不知道如何.
ste*_*vex 10
我发现了我的问题.原来我试图添加的对象有错误 - 我错过了必需的属性 - 并且没有覆盖handleError,没有迹象表明存在问题.
在此博客:http: //blog.stevex.net/2011/12/uimanageddocument-autosave-troubleshooting/