How to iterate & retrieve values from NSArray of NSArrays of NSDictionaries
- by chinjazz
I'm stumpped on how iterate and get values for an Array of Arrays of NSDictionaries (different classes/entities).   Here's what I'm currently doing:
1) Constructing two separate arrays of NSDictionaries (different entities)
2) Combining both arrays with: 
NSMutableArray *combinedArrayofDicts = [[NSMutableArray alloc] initWithObjects: sizesArrayOfDicts, wishListArrayOfDicts , nil];
3) Then archive combinedArrayofDicts :  
NSData *dataToSend = [NSKeyedArchiver archivedDataWithRootObject:combinedArrayofDicts];
4) Transmit over GameKit 
[self.session sendDataToAllPiers:dataToSend withDataMode: GKSendDataReliable error:nil];
5) How would I manage traversing thru this array on the receiving end?  I want to fetch values by for each class which is key'ed by classname:
Here's how it looks via NSLog (2 Sizes Dicts, and 1 Wishlist Dict)
Printing description of receivedArray:
<__NSArrayM 0xbc65eb0>(
<__NSArrayM 0xbc651f0>(
{
    classname = Sizes;
    displayOrder = 0;
    share = 1;
    sizeType = Neck;
    value = "13\" or 33 (cm)";
},
{
    classname = Sizes;
    displayOrder = 0;
    share = 1;
    sizeType = Sleeve;
    value = "34\" or 86 (cm)";
}
)
,
<__NSArrayM 0xbc65e80>(
{
    classname = Wishlist;
    detail = "";
    displayOrder = 0;
    imageString = "";
    latitude = "30.33216666666667";
    link = "http://maps.google.com/maps?q=loc:30.332,-81.41";
    longitude = "-81.40949999999999";
    name = bass;
    share = 1;
    store = "";
}
)
)
(lldb)
In my for loop I'm issuing this:  
NSString *value = [dict objectForKey:@"classname"];
and get an exception:   
  * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]:
  unrecognized selector sent to instance 0xbc651f0'
Is this frowned upon as far as mixing object types in arrays of arrays?