我有一个变量,我已经从我的核心数据数据库中取出了很多变量(它只是一个int但它会定期更新)。
我的应用基于NSPersistentDocument
,当用户关闭文档时,我想将此变量保存到数据库中,以便它继续存在。
我做了以下事情:
- (void) windowWillClose:(NSNotification *)notification
{
[self.managedObjectContext performBlockAndWait:^(void) {
self.myDatabase.myNumber = [NSNumber numberWithInt:self.myTempInt];
[self.managedObjectContext save:nil];
}];
}
这在保存数据方面起作用,当新文档打开时,我可以从数据库值设置myTempInt
。
然而,它引入了一个问题,即文档不再解除分配 - 似乎在文档关闭时引用self.myDatabase
会创建一个保留,这意味着ARC永远不会启动。
是否有一个更好的地方可以做这种不会引起参考计数的问题,或者我接近这一切都错了?
更新
我一直在考虑这一点,并意识到,只要文档自动保存,而不是关闭文件,这样做会好得多。有没有类似' documentWillAutosave'我可以用?