在Objective-C中递归遍历对象

时间:2012-02-06 22:44:56

标签: iphone objective-c json cocoa-touch recursion

我正在将各种JSON对象转换为结构化对象,并希望迭代所有节点以分层处理每个节点。 JSON框架支持转换为NSDictionary,我认为它是非结构化的。我想递归遍历每个项目并尊重结构。如何使用字典或通用NSOBject来完成这项工作?

示例:

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

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

更新

我在这里更清楚地问了这个问题(答案):

Recursively traverse NSDictionary of unknown structure

1 个答案:

答案 0 :(得分:2)

您可以使用以下命令枚举NSDictionary中的所有键:

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