That is your need, not your problem. To archive an object graph (cyclic or not), you just do [NSKeyedArchiver archiveRootObject:graph toFile:@"myfile"];
> Le 5 févr. 2016 à 14:28, Dave <d...@looktowindward.com> a écrit : > > Hi, > > See my other thread on this list which explains it fully - > "Archive/Unarchive Problem/Question?”. > > Basically I need to save/restore a Network of Custom Objects….. > > All the Best > Dave > >> On 5 Feb 2016, at 13:18, Jean-Daniel Dupas <mail...@xenonium.com> wrote: >> >> You don’t tell use what is your problem. You can perfectly encode any >> structure using Keyed archivers (whether there is cycles and backlinks). >> >>> Le 5 févr. 2016 à 14:13, Dave <d...@looktowindward.com> a écrit : >>> >>> Hi, >>> >>> I’m having problems with Back Links when Archiving/Unarchiving an Object. I >>> found the text below at: >>> >>> https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Archiving/Articles/archives.html >>> >>> >>> Root Object >>> >>> An object graph is not necessarily a simple tree structure. Two objects can >>> contain references to each other, for example, creating a cycle. If a coder >>> follows every link and blindly encodes each object it encounters, this >>> circular reference will generate an infinite loop in the coder. Also, a >>> single object can be referenced by several other objects. The coder must be >>> able to recognize and handle multiple and circular references so that it >>> does not encode more than one copy of each object, but still regenerate all >>> the references when decoding. >>> To solve this problem, NSCoder introduces the concept of a root object. The >>> root object is the starting point of an object graph. To encode an object >>> graph, you invoke the NSCoder method encodeRootObject:, passing in the >>> first object to encode. Every object encoded within the context of this >>> invocation is tracked. If the coder is asked to encode an object more than >>> once, the coder encodes a reference to the first encoding instead of >>> encoding the object again. >>> >>> NSCoder does not implement support for root objects; NSCoder’s >>> implementation of encodeRootObject: simply encodes the object by invoking >>> encodeObject:. It is the responsibility of its concrete subclasses to keep >>> track of multiple references to objects, thus preserving the structure of >>> any object graphs. >>> >>> The last paragraph seems pertinent to my problem, so do I need to do >>> something special for “weak”, back links in order to “keep track of >>> multiple references to objects”? If so could some please tell me how to do >>> this? I’m really struggling to get something out the door and was advised >>> to use the Keyed Archiver/Unarchiver as it would be the simplest >>> implementation…… >>> >>> Is this any other documentation or sample code available? There are plenty >>> of trivial examples out there, no nothing I can find that works for weak >>> back links, although according to all the Apple Blurb I can find, it is >>> possible, they just don’t tell you how to do it that I can find! >>> >>> Thanks in Advance for Any Help >>> All the Best >>> Dave >>> >>> _______________________________________________ >>> >>> 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/mailing%40xenonium.com >>> >>> This email sent to mail...@xenonium.com >> > > _______________________________________________ > > 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/mailing%40xenonium.com > > This email sent to mail...@xenonium.com _______________________________________________ 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