如何判断字典键是NSArray还是Bool类型

时间:2014-07-10 14:27:29

标签: ios objective-c nsdictionary

我有一个名为“content”的字典键,可以是NSArray或Bool值。我怎么知道它是什么类型的数据?如果应用程序不是Bool值,则以下代码将使应用程序崩溃。

   NSNumber *isSuccessNumber = (NSNumber *)[result objectForKey: @"content"];

3 个答案:

答案 0 :(得分:1)

id obj = [result objectForKey:@"content"];

if ([obj isKindOfClass:[NSArray class]]) {
    // It's an array!
    NSArray *anArray = (NSArray *)obj; // Cast it as such from id.
}
else if ([obj isKindOfClass:[NSNumber class]]) {
    // It's a BOOL!
    BOOL aBool = [(NSNumber *)obj boolValue]; // Cast it as such from id.
}

答案 1 :(得分:0)

NSObject *obj = [dixtionary objectForKey:@"key"];
if([obj isKindOfClass:[NSString class]])
...

答案 2 :(得分:0)

您可以使用isKindOfClass:方法。

你可以检查它:

if ([[result objectForKey: @"content"] isKindOfClass:[NSArray class]])
{
  // array
}
else
{
}