【发布时间】:2012-03-18 17:58:18
【问题描述】:
我正在使用 coredata 和 sqlite DB 来将数据持久保存在我的应用程序中。但是,每次我杀死我的应用程序时,我都会丢失保存在数据库中的所有数据。我很确定这是因为每次我的应用程序启动时,我的数据库的 .sqlite 文件都会被一个新文件替换,但我似乎找不到任何只使用现有文件的代码。 如果有人能指出一些可以为我处理这个问题的代码,那就太好了。
干杯
B
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (__persistentStoreCoordinator != nil)
{
return __persistentStoreCoordinator;
}
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"FlickrCoreData.sqlite"];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return __persistentStoreCoordinator;
}
【问题讨论】:
-
每次写入存储时都必须使用相同的 ManagedObjectContext。您如何将数据写入 moc 以及如何将 ManagedObjectContext 传递给其他控制器。
标签: iphone ios sqlite core-data