0
votes

I have an issue with a CoreData app... it crashes on boiler plate code supplied by apple when you select USE CORE DATA FOR STORAGE.

- (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_;
}

It says * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:]: nil string parameter'

Any ideas here....

3

3 Answers

0
votes

Somehow I lost my xcodedatamodeld file. When I created a new one it got called xcodedatamodel.

0
votes

You should use the following to get your managed object model :

managedObjectModel_ = [NSManagedObjectModel mergedModelFromBundles:nil]

It will search for all available managed object models in the main application bundle

-1
votes

Had the same issue. I'm working around it by adding a test to see if modelURL is nil -Its got to do with the fact that all data models are now "versioned" in the iOS5 SDK.

I now do this:

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];

Note the "ofType" parameter changing from momd to mom. I know this isn't ideal, but it'll get you unstuck. As soon as I've figured out why this is happening, I'll post something :-)