我有一个变化很大的变量,因此我从我的核心数据数据库中取出(它只是一个 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”这样的东西吗?