iOS内联if else编译错误: "Expected : "; "Expected expression"

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

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

关于iOS内联if else编译错误: "Expected : "; "Expected expression",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345313/

相关文章:

ios - UIScrollView 中的 UIView 尊重一些约束,但不尊重其他约束

javascript - Knockout.js if 语句 bool 测试

javascript - 有没有比 "if-else"链更短的赋值方法?

Java - 双重比较

ios - "Spotify like"在swift中拖动底部播放器

ios - 从 NSUserDefaults 检索自定义对象

iphone - iOS 256 色 (VGA) 到 RGB

ios - 如何在 iOS 上实现 STARTTLS?

ios - UITableView 没有滚动到最后一行,而是滚动到上面的 5-6 行。 (使用自动布局)

ios - 无法将值传递回 parentViewController