Ios C/C中一个奇怪的返回语句
各位, 我是C/Objective-C新手,我正在Xcode中做一些练习。事实上,这是斯坦福iTunes的第二堂课。2013年秋季U CS 193 iOS课程,如果有人熟悉 这个练习要求为一个名为Card的类创建一个属性 因此,在.h文件中,它声明:Ios C/C中一个奇怪的返回语句,ios,objective-c,c,return,Ios,Objective C,C,Return,各位, 我是C/Objective-C新手,我正在Xcode中做一些练习。事实上,这是斯坦福iTunes的第二堂课。2013年秋季U CS 193 iOS课程,如果有人熟悉 这个练习要求为一个名为Card的类创建一个属性 因此,在.h文件中,它声明: @property (strong, nonatomic) NSString *suit; 在.m文件中,它覆盖了getter方法: -(NSString *)suit { return _suit ? _suit : @"?"; }
@property (strong, nonatomic) NSString *suit;
在.m文件中,它覆盖了getter方法:
-(NSString *)suit
{
return _suit ? _suit : @"?";
}
在这里,我不明白这个返回语句是什么意思
根据讲师的说法,getter方法可以防止suit属性为零。但是我试着用下面的代码来代替上面的代码,它不起作用
-(NSString *)suit
{
if (!_suit)
return _suit;
else
return @"?";
}
这里有两个问题:
一,
return\u套装_诉讼:@“?”代码>
这个返回语句是什么意思
2、为什么我的代码不起作用
谢谢 将代码更改为,如下所示:
-(NSString *)suit
{
if (_suit) //if _suit exists, then return _suit. !_suit is wrong.
return _suit;
else
return @"?";
}
x?y:z
语法称为。如果x
为真,则其值为y
,否则其值为z
当您将其转换为if
/else
表单时,您将其转换为\u suit
,而您不应该这样做。应改为:
if (_suit)
return _suit;
...
它被称为条件运算符。这很清楚。万分感谢@因为它是C语言中唯一的三元运算符,我通常只听到它叫三元运算符。我想我从来没有听过像条件运算符这样有用的东西调用它,但这确实更有意义。我明白了。。谢谢!检查