我正在处理应用程序更新。我已经从头开始重写了应用程序,并切换到了用于模型控制的magicrecords 这是我的问题:
- 我创建了一个新的“newdatabase.xcdatamodel”文件,其中包含一个名为“foo”的实体。
- 在应用程序的第一个版本中,我还有一个“olddatabase.xcdatamodel”,其中还包含一个名为“foo”的实体
- 当用户从头开始安装应用程序时没有问题。
- 如果用户有以前版本的应用程序,他的设备有“olddatabase.mom”文件,其中还包含旧的“foo”实体,所以你可以想象,应用程序崩溃并出现错误:
无法将模型与名为“foo”的两个不同实体合并
那么是否有可能在加载新的 mom 文件之前检测并删除旧的“olddatabase.mom”文件?
我已经尝试了以下代码,就像我想的那样,我没有对该文件夹的权限:)
NSString *path = [[NSBundle mainBundle]pathForResource:@"olddatabase" ofType:@"mom"];
if(path){
NSError* error = nil;
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath:path error:&error];
if(error)
NSLog(@"Error: %@",[error description]);
}
NSLog(@"path = %@",path);
我开始考虑将我的新“foo”实体名称更改为“foo2”或其他名称,但我真的很着迷于为我使用的东西使用专有名称,所以我很高兴知道是否有办法做它。
感谢您阅读和(可能)回复:)