Wednesday, February 8, 2012

Recursively traverse object in Objective-C


I'm converting diverse JSON objects to structured objects and want to iterate over all the nodes to process each one hierarchically. JSON framework supports conversion to an NSDictionary, which I thought was unstructured. I want to recursively iterate through each item and pay respect to the structure. How would this be done with either a dictionary or generic NSOBject?



Example:




- (void) processParsedObject:(NSDictionary *)obj
{
if (atTheEndOfTheTail) {
NSLog(@"Object description: %@\n\n", obj.description);

}
for (id object in obj) {
[self processParsedObject:object];
}
}



Update:



I asked the question more clearly here (with answer):



Recursively traverse NSDictionary of unknown structure

1 comment:

  1. You can enumerate all the keys in an NSDictionary using:

    NSEnumerator* keyEnum = [myDictionary keyEnumerator];
    NSObject* nextKey;
    while ((nextKey = [keyEnum nextObject]) != nil)
    {
    NSObject* nextValue = [myDictionary objectForKey:nextKey];
    //... do something with the object and/or key ...
    }

    ReplyDelete