Re: Help with relationship objects
Quincey, that helps. Thanks On Jun 28, 2011, at 1:36 PM, Quincey Morris wrote: On Jun 28, 2011, at 08:40, Brad Stone wrote: I get the below. Notice the new SRTodoEntity is properly in the todos relationship but there's also a reference to it outside of the SRNoteEntity. Intuitively, I would think there should be only one reference to it inside SRNoteEntity.This is my confusion. Why is it reference twice? How can I prevent that from happening if this isn't normal? po [[self managedObjectContext] registeredObjects] {( Note uid:330961758011065 creationDate:2009-09-05 13:21:54 -0400 modificationDate:2009-09-06 12:41:02 -0400 todos:Relationship objects for {( SRTodoEntity: 0x200483d80 (entity: SRTodoEntity; id: 0x2004121e0 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRTodoEntity/p1 ; data: { note = 0x2002c4e60 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRNoteEntity/p1; todoViewData = nil; }) )} on 0x200448360 noteData:538 SRTodoEntity: 0x200483d80 (entity: SRTodoEntity; id: 0x2004121e0 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRTodoEntity/p1 ; data: { note = 0x2002c4e60 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRNoteEntity/p1; todoViewData = nil; }) )} You've kinda got hold of the wrong end of this. Core Data is an object graph, certainly, and any pointer to a managed object is a reference to the object. There are references to these objects all over your code -- every stack variable pointer is a reference. In the above example, a reference to the Todo object exists inside the set of references that represents Note's relationship to its Todo's. That makes it a really important reference, but it's certainly never the only one. By sending a 'registeredObjects' message to the managedObjectContext (which is *not* an object in the object graph), you've asked it to construct a collection (a set, as it happens) of references to Core Data objects it knows about. There's no *relationship* from the MOC to the managed objects, it's just the MOC's job to know what managed objects are currently in memory. ___ 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
Help with relationship objects
I need a little guidance. Did I properly add a relationship object? I don't know what's normal in this scenario. I referred to here: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdUsingMOs.html I have an entity called SRNoteEntity which has a to-many relationship with SRTodoEntity in a mutableSet called todos. When I do the following: [thisNote addTodosObject:todoItem]; I get the below. Notice the new SRTodoEntity is properly in the todos relationship but there's also a reference to it outside of the SRNoteEntity. Intuitively, I would think there should be only one reference to it inside SRNoteEntity.This is my confusion. Why is it reference twice? How can I prevent that from happening if this isn't normal? po [[self managedObjectContext] registeredObjects] {( Note uid:330961758011065 creationDate:2009-09-05 13:21:54 -0400 modificationDate:2009-09-06 12:41:02 -0400 todos:Relationship objects for {( SRTodoEntity: 0x200483d80 (entity: SRTodoEntity; id: 0x2004121e0 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRTodoEntity/p1 ; data: { note = 0x2002c4e60 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRNoteEntity/p1; todoViewData = nil; }) )} on 0x200448360 noteData:538 SRTodoEntity: 0x200483d80 (entity: SRTodoEntity; id: 0x2004121e0 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRTodoEntity/p1 ; data: { note = 0x2002c4e60 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRNoteEntity/p1; todoViewData = nil; }) )} ___ 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
Re: Help with relationship objects
On Jun 28, 2011, at 08:40, Brad Stone wrote: I get the below. Notice the new SRTodoEntity is properly in the todos relationship but there's also a reference to it outside of the SRNoteEntity. Intuitively, I would think there should be only one reference to it inside SRNoteEntity.This is my confusion. Why is it reference twice? How can I prevent that from happening if this isn't normal? po [[self managedObjectContext] registeredObjects] {( Note uid:330961758011065 creationDate:2009-09-05 13:21:54 -0400 modificationDate:2009-09-06 12:41:02 -0400 todos:Relationship objects for {( SRTodoEntity: 0x200483d80 (entity: SRTodoEntity; id: 0x2004121e0 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRTodoEntity/p1 ; data: { note = 0x2002c4e60 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRNoteEntity/p1; todoViewData = nil; }) )} on 0x200448360 noteData:538 SRTodoEntity: 0x200483d80 (entity: SRTodoEntity; id: 0x2004121e0 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRTodoEntity/p1 ; data: { note = 0x2002c4e60 x-coredata://614245CF-F03E-4F43-9D7F-98CDCB2899FA/SRNoteEntity/p1; todoViewData = nil; }) )} You've kinda got hold of the wrong end of this. Core Data is an object graph, certainly, and any pointer to a managed object is a reference to the object. There are references to these objects all over your code -- every stack variable pointer is a reference. In the above example, a reference to the Todo object exists inside the set of references that represents Note's relationship to its Todo's. That makes it a really important reference, but it's certainly never the only one. By sending a 'registeredObjects' message to the managedObjectContext (which is *not* an object in the object graph), you've asked it to construct a collection (a set, as it happens) of references to Core Data objects it knows about. There's no *relationship* from the MOC to the managed objects, it's just the MOC's job to know what managed objects are currently in memory. ___ 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