> I'm having another look at an issue I posted about a couple of weeks ago, > where Save As was causing an error. At the time, I was using a custom managed > object context. I have now reverted to a standard managed object context. I > do not create or release this managed object context anywhere - it gets > automatically created when I first access it from my persistent > document...but this context is not where the problem occurs. > > When I do a Save As, it migrates to a new store behind the scenes, it appears > to load my objects into the new store OK, and accesses the attributes OK, but > then I get a crash where it tries to send a message to a deallocated > NSManagedObjectContext. This context is created by core data internally as > Instruments shows: > > # Category Event Type RefCt Timestamp Address Size > Responsible Library Responsible Caller > 0 NSManagedObjectContext Malloc 1 00:28.911 0x11d0d58a0 > 240 CoreData -[NSPersistentStoreCoordinator(_NSInternalMethods) > _retainedAllMigratedObjectsInStore:toStore:] > 1 NSManagedObjectContext Autorelease 00:28.953 > 0x11d0d58a0 0 CoreData > -[NSPersistentStoreCoordinator(_NSInternalMethods) > _retainedAllMigratedObjectsInStore:toStore:] > 2 NSManagedObjectContext Zombie -1 00:28.955 0x11d0d58a0 > 0 CoreData -[NSManagedObjectContext(_NSInternalAdditions) > _dispose:] > > As far as I can see, I never get a look in. It all appears to be triggered by > [NSPersistentStoreCoordinator > migratePersistentStore:toURL:options:withType:error:].
Instruments can get confused by custom -retain / -release methods, so those may not be all the events. > But obviously there must be something somewhere in my code causing this > problem. > > I am just totally clueless as to where to look, and would appreciate any > suggestions. > > I thought there might be something happening in one of my awake... methods or > a dealloc or willTurnIntoFault or didTurnIntoFault, but I didn't find > anything that looked suspicious. The store is an NSAtomicStore subclass, and > I read that there could be problems with Save As if > newReferenceObjectForManagedObject: did not return a constant value, but that > isn't called before it crashes...so I'm stuck. > > Any ideas? The custom store seems like the most probable source of issues. One source of problems I've seen is when a custom store doesn't handle either the metadata or the objectIDs correctly. The store UUID and the object's IDs need to be stable (e.g. if we ask your store for its UUID, it doesn't make up a new answer for every question). If you give us an objectID to assign to an object, you cannot later change your mind. And then there's just not preserving the contents of the metadata. If you can create a stripped down sample project that reproduces the issue, you could file a bug. - Ben _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com