我以为我明白这将如何工作,但也许我错过了一些小事。我想根据另一个变量的值设置标签的文本。三元运算符根据变量的值设置值
这是我写的,但它始终返回null,并在编译器抛出一个警告:
myLabel.text = [NSString stringWithFormat:@"%@", [[_singleDictionary objectForKey:_key] isEqual: @"1" ? @"Single" : @"Three"]];
编译器会引发警告:
Format specifies type 'id' but the argument has type 'BOOL' (aka 'bool')
我不知道为什么。我研究过三元运算符,当我构造类似的代码时,我仍然得到警告。基本上,我想作以下if语句三元操作符:
if ([[_singleDictionary objectForKey:_key] == @"1"])
{
myLabel.text = @"Single";
}
else if ([[_singleDictionary objectForKey:_key] == @"3"])
{
myLabel.text = @"Three";
}
尝试在你的三元运算符周围加上括号,以使它更清楚发生了什么。 – thelaws 2014-10-20 20:26:34
仅供参考 - 在这种情况下不需要使用'stringWithFormat'。 – rmaddy 2014-10-20 20:55:34