1

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

4

0 回答 0