Thinking about it more, your method doesn't really make sense. In order to use 
a context it must be associated with a persistent store coordinator, in order 
to know its model. So it doesn't make sense to create the coordinator lazily. 
Instead, make *adding the store* be the lazy bit

Sent from my iPad

On 16 Feb 2013, at 19:06, Laurent Daudelin <laur...@nemesys-soft.com> wrote:

> Hey Mike.
> 
> No assertions have ever been fired, which I thought was weird a bit as well. 
> BTW, this is on iOS, not Mac OS X if that makes any difference.
> 
> -Laurent.
> -- 
> Laurent Daudelin
> AIM/iChat/Skype:LaurentDaudelin                               
> http://www.nemesys-soft.com/
> Logiciels Nemesys Software                                    
> laur...@nemesys-soft.com
> 
> On Feb 16, 2013, at 02:00, Mike Abdullah <cocoa...@mikeabdullah.net> wrote:
> 
>> 
>> On 16 Feb 2013, at 00:37, Laurent Daudelin <laur...@nemesys-soft.com> wrote:
>> 
>>> I got a few crash reports from users that have a problem with my CoreData 
>>> app.
>>> 
>>> Given the following code:
>>> 
>>> /*
>>> Returns the persistent store coordinator for the application.
>>> If the coordinator doesn't already exist, it is created and the 
>>> application's store added to it.
>>> */
>>> - (NSPersistentStoreCoordinator *)persistentStoreCoordinator
>>> {
>>>   if (_persistentStoreCoordinator == nil) {
>>>       NSURL *storeUrl = [NSURL fileURLWithPath:self.persistentStorePath];
>>>       _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] 
>>> initWithManagedObjectModel:[NSManagedObjectModel 
>>> mergedModelFromBundles:nil]];
>>>       NSError *error = nil;
>>>       NSPersistentStore *persistentStore = [_persistentStoreCoordinator 
>>> addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl 
>>> options:nil error:&error];
>>>       NSAssert3(persistentStore != nil, @"%s at %d: Unhandled error adding 
>>> persistent store: %@", __FUNCTION__, __LINE__, [error 
>>> localizedDescription]);
>>>             NSLog(@"Created persistent store '%@' at URL %@", 
>>> persistentStore, storeUrl);
>>>   }
>>>   return _persistentStoreCoordinator;
>>> }
>>> 
>>> When the MOC tries to perform a save, an exception is generated:
>>> 
>>> Exception reason
>>> 
>>> This NSPersistentStoreCoordinator has no persistent stores. It cannot 
>>> perform a save operation.
>>> 
>>> Stacktrace
>>> 
>>> PRIMARY THREAD THREAD 0
>>> 
>>>     • 0 CoreFoundation 0x356212a3 __exceptionPreprocess + 163
>>>     • 1 libobjc.A.dylib 0x3393197f objc_exception_throw + 31
>>>     • 2 CoreData 0x36f2dfef -[NSPersistentStoreCoordinator 
>>> executeRequest:withContext:error:] + 299
>>>     • 3 CoreData 0x36f862d3 -[NSManagedObjectContext save:] + 731
>>> 
>>> How can the persistent store not being existing?
>> 
>> Well you whacked in some assertions that failures never happen (generally a 
>> bad idea for disk access. It *is* going to fail sometime). Have those 
>> assertions fired?
> 
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to