gpt4 book ai didi

多型号 iPhone Core 数据迁移

转载 作者:行者123 更新时间:2023-12-03 19:02:31 25 4
gpt4 key购买 nike

我的项目中有两个模型,我想允许其中一个模型的版本。这是我所做的:

  • 选择 modelOne.xcdatamodel,然后选择“设计”>“数据模型”>“添加模型版本”。
  • 单击命令 + i,然后将版本添加到 modelOne.xcdatamodeld 内的 modelOne.xcdatamodel
  • 修改了modelOne.xcdatamodel,只是添加了一些属性。
  • 在委托(delegate)中,我将选项字典添加到 NSPersistentStoreCoordinator 中,并通过合并两个模型来获取 NSManagedObjectModel,如下所示:

    NSString *path1 = [[NSBundle mainBundle] pathForResource:@"modelOne" ofType:@"momd"];
    NSURL *momURL1 = [NSURL fileURLWithPath:path1];
    NSManagedObjectModel *modelOne = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL1]; NSString *path2 = [[NSBundle mainBundle] pathForResource:@"modelTwo" ofType:@"mom"];

    NSURL *momURL2 = [NSURL fileURLWithPath:path2];
    NSManagedObjectModel *modelTwo = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL2];


    NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel modelByMergingModels:[NSArray arrayWithObjects:modelOne, modelTwo, nil]];
  • 最后我进行了清理和构建,我收到了有关“找不到源存储的模型”的错误。

知道如何解决这个问题吗? (注意:如果我只使用 mergedModelFromBundles,我会收到另一个关于“无法将模型与名为 Entity1 的两个不同实体合并”的错误

最佳答案

我也遇到了类似的问题。结果发现旧的 .mom 编译的模型文件仍然在模拟器的应用程序包中。显然,当您清理项目时,它不会删除模拟器上的应用程序包。手动从模拟器中删除应用程序,然后在再次构建之前进行清理解决了问题。

关于多型号 iPhone Core 数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com