我正在学习iOS编程(我来自Android),并且正在寻找使Strings更容易的方法。有了这个提议,我定义了下一个宏并将其用于某些代码片段中:

#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";

我不知道发生了什么,当我把这两行都OK时,它就可以工作了。
_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, @"")

10-02 06:52