2013-03-20 114 views
-1

我只是想知道這行代碼的意思,因爲我從來沒有見過它。在此先感謝Objective-C語法問題

- (NSString *)suit 
{ 
    return _suit ? _suit : @"?"; /* precisely this part */ 
} 
+0

@JesseNk在這種情況下,我建議你去學習C.全面正確。如果你不瞭解C,那麼在iOS開發中你會遇到嚴重的問題**。 C本身就是一個需要學習的大型項目,如果你想立即跳入iOS開發,Objective-C和臃腫的Cocoa Touch API,你會很快失去。 – 2013-03-20 05:57:09

回答

4

這只是一個叫做suit的函數,它返回一個NSString。

如果_suit不爲零,此函數將返回_suit (_suit ? _suit這樣做。

否則,它會返回@「?」 (:@"?"這樣做)。

(東西?somethingElse:somethingElseAgain)只是表示如果某件事情是真的,則返回somethingElse,否則返回somethingElseAgain。

換句話說,這是一個簡單的,內聯的方式來寫:

if (something) { 
    return somethingElse; 
} 
else { 
    return somethingElseAgain; 
} 
2
- (NSString *)suit 
{ 
    if(_suit) 
     return _suit; 
    return @"?" 
}