On Apr 3, 2010, at 5:07 PM, Gideon King wrote:

> Wow, this is huge! Obviously the user doesn't expect the document to 
> disappear and a new one open up just because they did a Save As operation

I have I'm afraid led you astray.  The invalidated objects are not coming from 
the Save As operation.  The managed objects in the MOC bound to the 
NSPersistentDocument, and any other MOCs bound to that same PSC will keep the 
NSManagedObjects themselves in sync with the underlying document even as it is 
remapped to a new file.  I'll send you a sample project from the template that 
logs the notifications from NSManagedObjectContext and 
NSPersistentStoreCoordinator.  The NSManagedObject pointers remain undisturbed. 

2010-04-03 18:13:41.110 testDocs[14260:a0f] PSC changed:  {
    changedUUID =     (
        "<NSSQLCore: 0x1025513e0>",
        "<NSSQLCore: 0x103051890>",
                (
            "0x1025a4bc0 
<x-coredata://7401BACF-50F9-4699-8B65-520963A9B084/Entity/p3>",
            "0x103055bc0 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p1>",
            "0x102504fb0 
<x-coredata://7401BACF-50F9-4699-8B65-520963A9B084/Entity/p2>",
            "0x103051d40 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p3>",
            "0x102598810 
<x-coredata://7401BACF-50F9-4699-8B65-520963A9B084/Entity/p1>",
            "0x1004eeb10 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p2>"
        )
    );
}
2010-04-03 18:13:41.112 testDocs[14260:a0f] PSC changed.  Registered objects = 
{(
    <NSManagedObject: 0x1004db090> (entity: Entity; id: 0x103051d40 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p3> ; data: {
    name = baz;
}),
    <NSManagedObject: 0x1004db120> (entity: Entity; id: 0x103055bc0 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p1> ; data: {
    name = foo;
}),
    <NSManagedObject: 0x1004daea0> (entity: Entity; id: 0x1004eeb10 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p2> ; data: {
    name = zap;
})
)}
2010-04-03 18:13:53.604 testDocs[14260:a0f] PSC changed:  {
    changedUUID =     (
        "<NSSQLCore: 0x103051890>",
        "<NSSQLCore: 0x103062860>",
                (
            "0x10305b680 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p1>",
            "0x10306a890 
<x-coredata://381F89A2-9204-45E8-850B-1CED8022E32E/Entity/p1>",
            "0x10305b3c0 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p2>",
            "0x10306aa80 
<x-coredata://381F89A2-9204-45E8-850B-1CED8022E32E/Entity/p2>",
            "0x1030681e0 
<x-coredata://9D960070-9CAE-4BDD-9EDF-99ACCD83AF7F/Entity/p3>",
            "0x10306ae20 
<x-coredata://381F89A2-9204-45E8-850B-1CED8022E32E/Entity/p3>"
        )
    );
}
2010-04-03 18:13:53.604 testDocs[14260:a0f] PSC changed.  Registered objects = 
{(
    <NSManagedObject: 0x1004db090> (entity: Entity; id: 0x10306ae20 
<x-coredata://381F89A2-9204-45E8-850B-1CED8022E32E/Entity/p3> ; data: {
    name = baz;
}),
    <NSManagedObject: 0x1004db120> (entity: Entity; id: 0x10306a890 
<x-coredata://381F89A2-9204-45E8-850B-1CED8022E32E/Entity/p1> ; data: {
    name = foo;
}),
    <NSManagedObject: 0x1004daea0> (entity: Entity; id: 0x10306aa80 
<x-coredata://381F89A2-9204-45E8-850B-1CED8022E32E/Entity/p2> ; data: {
    name = zap;
})
)}


There are no invalidate managed objects if you create a Core Data document 
based app from the Xcode template and then perform Save As.  I'll take another 
look at your sample project.

- 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

Reply via email to