应用程序崩溃在CoreData PathForResource上

时间:2011-02-08 07:33:33

标签: core-data

我遇到CoreData应用程序的问题...当您选择使用核心数据进行存储时,它会崩溃苹果提供的样板代码。

- (NSManagedObjectModel *)managedObjectModel {

if (managedObjectModel_ != nil) {
    return managedObjectModel_;
}
NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"iLoveForLife" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];    
return managedObjectModel_;
}

它表示 *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSURL initFileURLWithPath:]:nil string parameter'

这里的任何想法......

3 个答案:

答案 0 :(得分:0)

不知怎的,我丢失了我的xcodedatamodeld文件。当我创建一个新的时,它被称为xcodedatamodel。

答案 1 :(得分:0)

您应该使用以下内容来获取托管对象模型:

managedObjectModel_ = [NSManagedObjectModel mergedModelFromBundles:nil]

它将在主应用程序包

中搜索所有可用的托管对象模型

答案 2 :(得分:-1)

有同样的问题。 我正在通过添加测试来解决这个问题,看看modelURL是否为零 - 这与所有数据模型现在都在iOS5 SDK中“版本化”的事实有关。

我现在这样做:

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"iLoveForLife"
                                                      ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
if (modelURL == nil)
        NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"iLoveForLife"
                                                              ofType:@"mom"];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

注意“ofType”参数从妈妈变为妈妈。我知道这不太理想,但它会让你失意。 一旦我弄清楚为什么会发生这种情况,我会发布一些东西: - )