为什么我的if语句不起作用?它不接受NSCFStrings ...... 基本上我是这样做的:
if ([myObj isKindOfClass:[NSString class]]) {
// ...
}
else if ([myObj isKindOfClass:[NSNumber class]]) {
//...
}
else {
NSLog(@"Invalid NSMutableArray.\n\tWrong type in array: %@, The value is: %@.",[myObj class], myObj);
}
这是在一个循环中,我在NSMutableArray上迭代,里面只有NSNumbers和NSStrings。
奇怪的是,它接受NSNumbers,但没有NSStrings!
输出总是:
Invalid NSMutableArray.
Wrong type in array: NSCFString, The value is: [Value I put in the string].
我认为NSCFString是NSString的子类,-isKindOfClass:
也检测到了子类?
更新
我自己解决了。这确实是由@jjv360所说的 - 在第二个if之前失踪的其他原因引起的。我认为这是一个错字,因为我在这里重新输入了它而不是复制粘贴, 因为我嵌套了几个if-else
s并且事情变得混乱(这是一个谷歌翻译 - 翻译) 。
毕竟非常愚蠢。
jjv360请将此作为答案发布。
答案 0 :(得分:1)
这是我发表的评论作为答案:
if语句之间缺少else
语句。没有它,它将运行第一个块中的代码以及最后的else块中的代码...