为什么我的 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 之前缺少 else。我认为这是一个错字,因为我在这里重新输入了它而不是复制粘贴,因为我嵌套了更多if-else
的 s 并且事情变得混乱(这是一个谷歌翻译)。
毕竟很傻。
jjv360 请将此作为答案发布。