【问题标题】:iOS inline if else compile error: "Expected : "; "Expected expression"iOS inline if else 编译错误:“预期:”; “预期表达”
【发布时间】:2015-05-20 09:15:01
【问题描述】:

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

但是当我使用最后一个时,我遇到了一个编译器错误,上面写着“预期:”和“预期表达式”。

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

如果我选择“Fix-it”,则代码将替换此代码(当然会出现编译器错误):

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

我做错了什么?

提前致谢。

【问题讨论】:

  • rckoenes 是对的,去掉“;”表单宏

标签: ios objective-c if-statement compiler-errors


【解决方案1】:

您的定义添加是 ;,只需从定义中删除 ;

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

【讨论】:

  • 好观察+1给你
猜你喜欢
  • 1970-01-01
  • 2016-11-21
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 2011-01-03
相关资源
最近更新 更多