一些基于 Core Data 的 iOS 应用程序的客户报告说他们偶尔会丢失数据。这些报告很奇怪,这就是我想请教您对此有何看法的原因。客户报告说,当他们在一段时间后(几分钟、几小时或第二天)重新打开应用程序时,他们的一些数据会丢失,就好像底层数据库恢复到以前的状态一样。
我已经使用 Core Data 工作了几年,以前从未遇到过这样的问题。该应用程序相当简单,这意味着我只使用一个托管对象上下文,并且在应用程序进入后台之前提交更改。
我意识到这是一个很长的机会,但是这类问题的一些潜在原因可能是什么,或者我可以进行哪些检查来收集更多信息?不幸的是,我自己无法重现该问题,这将使这一切变得容易得多。
更新:
- (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;
}