Core Data ベースの iOS アプリケーションを使用している一部のお客様から、データが失われることがあると報告されています。報告は非常に奇妙です。そのため、これについての見解をお聞きしたいと思います。顧客は、しばらくしてから (数分、数時間、または翌日) アプリケーションを再度開くと、基礎となるデータベースが以前の状態に戻ったかのように一部のデータが失われると報告しています。
私は数年間 Core Data を扱ってきましたが、これまでこのような問題に遭遇したことはありません。アプリケーションは非常に単純です。つまり、1 つの管理対象オブジェクト コンテキストのみを使用し、アプリケーションがバックグラウンドに移行する前に変更がコミットされます。
これは見込みのないことだと思いますが、この種の問題の潜在的な原因は何か、またはより多くの情報を収集するためにどのようなチェックを行うことができますか? 残念ながら、この問題を自分で再現することはできません。
アップデート:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (_persistentStoreCoordinator) return _persistentStoreCoordinator;
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Prime.sqlite"];
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:@{ NSMigratePersistentStoresAutomaticallyOption : @YES, NSInferMappingModelAutomaticallyOption : @YES } error:&error]) {
// Error Handling
}
return _persistentStoreCoordinator;
}