I took a cue from Apple's own multiple samples. I thought about that and I 
changed my code to force create the managed object context and the persistent 
store right when the application has started.

Thanks, Mike. Seems we got to the same cause.Í

-Laurent.
-- 
Laurent Daudelin
AIM/iChat/Skype:LaurentDaudelin                                 
http://www.nemesys-soft.com/
Logiciels Nemesys Software                                      
laur...@nemesys-soft.com

On Feb 17, 2013, at 05:45, Mike Abdullah <cocoa...@mikeabdullah.net> wrote:

> 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