核心数据模型 Url 在框架中为 Nil
Posted
技术标签:
【中文标题】核心数据模型 Url 在框架中为 Nil【英文标题】:Core Data Model Url is Nil in Framework 【发布时间】:2015-08-04 17:29:44 【问题描述】:我正在使用 Apple 文档化代码链接 CoreData xcdatamodeld 文件,但它在项目中运行良好,但在框架中失败。 这是我用来创建 managedObjectModel 的代码。 如果是框架,我得到 nil modelURL。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths lastObject];
self.persistantStorePath = [documentDirectory stringByAppendingString:[NSString stringWithFormat:@"/%@.sqlite",name]];
NSURL *storeURL = [NSURL fileURLWithPath:self.persistantStorePath];
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:name withExtension:@"momd"];
self.managedObjectContext = [[NSManagedObjectContext alloc] init];
self.managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
另外,我尝试了 [NSManagedObjectModel mergeModelFromBundles:nil],令人惊讶的是,它也有效。
我不知道为什么 Apple 文档在框架的情况下会失败
【问题讨论】:
【参考方案1】:我想您的模型文件存储在框架包中。
调用[NSBundle mainBundle]
将返回应用程序包而不是框架包。
尝试改用[NSBundle bundleForClass:[AClassInYourFramework class]]
。
【讨论】:
谢谢。另一种方法是使用框架包名称来获取包以上是关于核心数据模型 Url 在框架中为 Nil的主要内容,如果未能解决你的问题,请参考以下文章