On 23 Jun 2016, at 12:21, Dave <d...@looktowindward.com> wrote:
> 
> I have an Object that I Archive and Unarchive, e.g it conforms to the 
> NSCopying and NSCoding Protocols. The Object in question contains NSArray and 
> NSDictionary Object and I handle them like this:
> 
> initWithCoder:
> 
> myDictionary = [theCoder decodeObjectForKey:@"pLookUpDictionary "];
> self.pLookUpDictionary = [[NSMutableDictionary alloc] 
> initWithDictionary:myDictionary copyItems:NO];

You don’t need to do that.  If you encode a mutable dictionary, you’ll get a 
mutable dictionary back.  The only time that doesn’t happen is with plists or 
NSUserDefaults; with NS[Keyed]Archiver, you get what you gave it.

> I now need to add another archivable property as so:
> 
> @property (nonatomic,strong)  
> NSMutableDictionary<NSString*,NSArray<LTWClassX*>*>*            
> pLookUpDictionaryArray;
> 
> How do I handle this in the above three methods? Specially do I need to walk 
> the Array and do a mutableCopy on each of the Dictionaries in the Array?

No.  As long as your LTWClassX supports archiving, you can just tell the 
NSCoder to encode pLookUpDictionaryArray and it will handle the object graph 
for you.  It will even cope if your properties happen to refer to the same 
object more than once; it ensures that each object is stored only once, and 
that the resulting object graph is as it was when you saved it.

Kind regards,

Alastair.

--
http://alastairs-place.net


_______________________________________________

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