我正在学习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, @"")