頻繁に変更される変数があるため、コア データ データベースから取り出しました (これは単なる 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」のようなものはありますか?