我有一个核心数据模型,可以很好地导入和导出数据。我的应用程序的工作方式是从数据库下载 JSON 文件,对其进行解析,刷新核心数据模型,然后再次添加数据(实际上是刷新本地数据模型)。
如果我对数据库进行更改,则更改会反映在 JSON 文件中,但不会反映在核心数据模型中,直到我重新启动(也就是结束应用程序,再次打开)应用程序。
我确定这一定与我刷新数据库的方式有关,但我就是不能指望它。我在下面包含了一些代码来提供帮助。
我用来刷新数据模型的方法:
- (void)resetCoreData;
{
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"AppWithCoreData.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtURL:storeURL error:NULL];
NSError* error = nil;
if([fileManager fileExistsAtPath:[NSString stringWithContentsOfURL:storeURL encoding:NSASCIIStringEncoding error:&error]])
{
[fileManager removeItemAtURL:storeURL error:nil];
}
persistentStoreCoordinator = nil;
managedObjectContext = nil;
[self managedObjectContext]; // Rebuild Object Context
}
我用来将数据添加到数据模型中的一行代码:
[model setValue:[dictionary objectForKey:@"eventID"] forKey:@"eventID"];