Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在Objective-C中递归遍历对象_Iphone_Objective C_Json_Cocoa Touch_Recursion - Fatal编程技术网

Iphone 在Objective-C中递归遍历对象

Iphone 在Objective-C中递归遍历对象,iphone,objective-c,json,cocoa-touch,recursion,Iphone,Objective C,Json,Cocoa Touch,Recursion,我正在将各种JSON对象转换为结构化对象,并希望迭代所有节点,以分层方式处理每个节点。JSON框架支持转换为NSDictionary,我认为它是非结构化的。我希望递归地遍历每个项目,并关注结构。如何使用字典或泛型NSOBject实现这一点 例如: - (void) processParsedObject:(NSDictionary *)obj { if (atTheEndOfTheTail) { NSLog(@"Object description: %@\n\n", o

我正在将各种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];
    }
}
更新:

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


您可以使用以下方法枚举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 ...
}

或者只需使用快速枚举(
for…in
)就可以了。您还可以递归地执行上述操作,以获取子对象和子对象等。我也这么认为。你能给我看一些语法示例吗?在我的示例中,我对它进行了删节。用于快速枚举的文档如下所示。它类似于:
NSObject*nextKey;对于(myDictionary中的nextKey){NSObject*nextValue=[myDictionary objectForKey:nextKey];}