Ios 如何检查NSDictionary的哪些键可用?
我想做的是检查我的字典有多深。我的JSON有两种可能:Ios 如何检查NSDictionary的哪些键可用?,ios,objective-c,nsdictionary,Ios,Objective C,Nsdictionary,我想做的是检查我的字典有多深。我的JSON有两种可能: stop-schedule: 0: route: 1: route: 或 所以我在检查我是否需要更深入 通常我会做一些简单的事情 [dict objectForKey:@"0"] 为了检查密钥是否存在(如果不存在,将返回nill),但是由于某种原因,我在iOS上测试它时遇到了一个错误 [__NSCFArray objectForKey:]: unrecognized selector sent to
stop-schedule:
0:
route:
1:
route:
或
所以我在检查我是否需要更深入
通常我会做一些简单的事情
[dict objectForKey:@"0"]
为了检查密钥是否存在(如果不存在,将返回nill),但是由于某种原因,我在iOS上测试它时遇到了一个错误
[__NSCFArray objectForKey:]: unrecognized selector sent to instance
现在仔细阅读错误消息
您的
dict
实际上不是一个字典,而是一个数组。它没有钥匙。如果要确保它属于某个类,请使用反射:
if ([json isKindOfClass:[NSDictionary class]]) {
// object
} else if ([json isKindOfClass:[NSArray class]]) {
// array
} else {
// fragment or `nil`
}
现在仔细阅读错误消息
您的
dict
实际上不是一个字典,而是一个数组。它没有钥匙。如果要确保它属于某个类,请使用反射:
if ([json isKindOfClass:[NSDictionary class]]) {
// object
} else if ([json isKindOfClass:[NSArray class]]) {
// array
} else {
// fragment or `nil`
}
当然,我真傻。也许我应该休息一下,早上继续。。。谢谢。@DeKay是的,一定要睡一会儿。不客气。:)当然,我真傻。也许我应该休息一下,早上继续。。。谢谢。@DeKay是的,一定要睡一会儿。不客气。:)那不是一本字典。