gpt4 book ai didi

core-data - 映射模型为NULL - 核心数据迁移

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

我遵循这个不错的教程 http://mipostel.com/index.php/home/70-core-data-migration-standard-migration-part-2做我的核心数据迁移。

由于一些奇怪的原因,我总是在这些行的 mappingModel 中得到 NULL:

 NSMappingModel *mappingModel = [NSMappingModel mappingModelFromBundles:nil
forSourceModel:sourceModel
destinationModel:destinationModel];

(链接代码中的第 191 行)

我试图创建一个非常简单的模型派生版本,我重新创建了一个 mappingModel 1000 次,确保映射模型文件在项目目录中 - 但这个调用总是返回 NULL。

有人知道这里有什么问题吗?

ps 我只是想知道在使用映射模型之后调用设置迁移选项。
   NSURL *storeUrl = [NSURL fileURLWithPath:storePath];   
NSError *error;
NSDictionary *pscOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:NO], NSInferMappingModelAutomaticallyOption,
nil];

if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeUrl
options:pscOptions
error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}

(第 123 行...)

反正

为什么找不到映射模型?

pss 情不自禁地阻止:-) 与进行简单的 SQL DB 迁移相比,这种核心数据迁移的东西太复杂和困难了——浪费了太多时间。

非常感谢!

最佳答案

我遵循了相同的教程,最终不得不通过 URL

  NSString *mappingModelPath = [[NSBundle mainBundle] pathForResource:@"mappingModel10" ofType:@"cdm"];
NSLog(@"mapping model path:%@", mappingModelPath);
NSURL *mappingModelUrl = [NSURL fileURLWithPath:mappingModelPath];
NSMappingModel *mappingModel = [[NSMappingModel alloc] initWithContentsOfURL:mappingModelUrl];
手动打开我的映射模型。
我通过查看我的应用程序包找到了我的映射模型的文件名。

关于core-data - 映射模型为NULL - 核心数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514460/

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