By melting something I read on this forum and some other stuff I found in Apple's documentation, I've tried to get to a functioning NSManagedObjectContext. so, I wrote the following code:
NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:[NSArray arrayWithObject:[NSBundle mainBundle]]]; NSPersistentStoreCoordinator *persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); NSString *basePath = ([paths count]>0 ? [paths objectAtIndex:0] : nil); NSURL *storeUrl = [NSURL fileURLWithPath:[basePath stringByAppendingPathComponent:@"meetSigns.sqlite"]]; NSError *persistentError; if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&persistentError]) { NSLog([persistentError description]); } NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] init]; [managedObjectContext setPersistentStoreCoordinator:persistentStoreCoordinator];
I must precise that, at the beginning, my app had not data model, so I added it manually and now I have a .xcdatamodeld file. I used the interface to populate the model with my entities and relationships.
Anyway, I can't find a .sqlite file, even if it is required in the snippet I posted.
Maybe, as a consequence, I get the following error:
Error Domain=NSCocoaErrorDomain Code=512 "The operation couldn’t be completed. (Cocoa error 512.)" UserInfo=0x74d6dd0 {reason=Failed to create file; code = 2}
How can I create this .sqlite file? can I generate it automatically from data model? I tried to use both the name of the project and the one of data model, in both cases adding .sqlite extension, but I got same error.
Beacuse of this error, I get the following, too:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
Coud you tell me where I'm mistaking? can you tell me how to solve the problem of mixing .sqlite file?
thanks for help
You're using
NSDocumentationDirectory
in your call toNSSearchPathForDirectoriesInDomains
, but it should beNSDocumentDirectory
.