在迭代NSDictionary时处理不同的对象类型

时间:2012-11-07 03:31:44

标签: objective-c ios xcode nsarray nsdictionary

for (NSArray *values in [serializedJSON allValues])

有时,serializedJSON中的值将是数组,有时它们将是NSDictionaries。我想歧视其中一个,所以我不会像现在这样得到任何错误。所以我只希望在这种情况下返回的值是NSArrays,而在第二种情况下我只希望它们是NSDictionaries。

先谢谢!

如果您需要更多信息,请告诉我

1 个答案:

答案 0 :(得分:4)

处理JSON的标准通用方法大致如下:

NSObject* jsonResult = [serializedJSON allValues];
if ([jsonResult isKindOfClass:[NSArray class]]) {
   <handle NSArray>
}
else if ([jsonResult isKindOfClass:[NSDictionary class]]) {
   <handle NSDictionary>
}
else if ([jsonResult isKindOfClass:[NSNumber class]]) {
   <handle NSNumber>
}
else if ([jsonResult isKindOfClass:[NSString class]]) {
   <handle NSString>
}
else if (jsonResult == [NSNull null]) {
   <handle null>
}