【问题标题】:Core Data Model Url is Nil in Framework核心数据模型 Url 在框架中为 Nil
【发布时间】: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 文档在框架的情况下会失败

【问题讨论】:

    标签: ios objective-c core-data nsmanagedobjectcontext


    【解决方案1】:

    我想您的模型文件存储在框架包中。

    调用[NSBundle mainBundle] 将返回应用程序包而不是框架包。

    尝试改用[NSBundle bundleForClass:[AClassInYourFramework class]]

    【讨论】:

    • 谢谢。另一种方法是使用框架包名称来获取包
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多