[__NSCFBoolean count]:无法识别的选择器:防止此崩溃的最佳方法

问题描述:

我在条件if语句中收到此错误。有没有一种好方法来防止这个错误出现?任何提示或建议表示赞赏。我猜测由于某种原因,subanswer是一个布尔值。[__NSCFBoolean count]:无法识别的选择器:防止此崩溃的最佳方法

id subAnswer = [answer objectForKey:@"answer"]; 
NSArray *subAnswerKeyList; 
if (subAnswer != [NSNull null] && subAnswer != nil && [subAnswer count] > 0) { 
    ... 
} 

替换为您if声明:

if ([subAnswer isKindOfClass:[NSArray class]] && [subAnswer count]) { 
} 

subAnswer实际上是代表BOOL值的数字。你需要明白为什么你期望它是一个数组。

你的“subAnswer”对象几乎肯定不是你期待它的NSArray对象。

在你的代码中放入一个“NSLog("subAnswer is %@", subAnswer);”,你的Xcode控制台会告诉你对象真的是是什么。