iOS inline if else compile error: "Expected : "; "Expected expression"

iOS inline if else compile error: "Expected : "; "Expected expression"

我正在学习 iOS 编程(我来自 Android),我正在寻找更容易获取字符串的方法。有了这个建议,我定义了下一个宏并在一些代码片段中使用它:

#define STRING_BASE @"InfoPlist"
#define getString(string) NSLocalizedStringFromTable(string, STRING_BASE, @"");

...

BOOL isSomething = YES; //or NO
_label.text = isSomething? @"YES" : @"NO";
_label.text = isSomething? @"YES" : getString(@"login_title");
_label.text = isSomething? getString(@"login_title") : @"NO";

我不知道发生了什么,当我有这 2 行时一切正常,并且可以正常工作。

_label.text = isSomething? @"YES" : @"NO";
_label.text = isSomething? @"YES" : getString(@"login_title");

但是当我使用最后一个时,出现编译器错误,显示 "Expected : " 和 "Expected expression"。

_label.text = isSomething? getString(@"login_title") : @"NO";

如果我选择 "Fix-it" 代码将替换它(当然会继续出现编译器错误):

self.loginTitleLabel.text = isSomething? : ) : @"NO";

我哪里做错了?

提前致谢。

您的定义添加了一个 ; 只需从定义中删除 ;:

#define getString(string) NSLocalizedStringFromTable(string, STRING_BASE, @"")