Iphone 在Objective-C中递归遍历对象
我正在将各种JSON对象转换为结构化对象,并希望迭代所有节点,以分层方式处理每个节点。JSON框架支持转换为NSDictionary,我认为它是非结构化的。我希望递归地遍历每个项目,并关注结构。如何使用字典或泛型NSOBject实现这一点 例如: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
- (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];}