1

为什么我的 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 请将此作为答案发布。

4

1 回答 1

1

这是我作为答案发布的评论:

else您的 if 语句之间缺少一条语句。没有它,它将运行第一个块中的代码以及最后一个 else 块中的代码......

于 2012-06-27T14:01:19.880 回答