如果声明期待]

时间:2012-02-08 11:19:52

标签: objective-c syntax if-statement

if (menuPlayed == TRUE && [sender tag == 0]) {
    NSLog(@"You're pressing the right button at the right time");
}

知道为什么这会引起“预期”] “”错误?我完全不知道这些比较有什么问题:(

2 个答案:

答案 0 :(得分:3)

变化:

if (menuPlayed == TRUE && [sender tag == 0])

为:

if (menuPlayed == TRUE && [sender tag] == 0)

另请注意,您永远不应编写menuPlayed == TRUE等表达式 - 始终将其写为menuPlayed,即在此特定情况下:

if (menuPlayed && [sender tag] == 0)

正如@ rokjarc的回答中所提到的,为了清晰起见,您可能需要添加一些括号,尽管实际上并不需要这些括号:

if (menuPlayed && ([sender tag] == 0))

答案 1 :(得分:0)

将您的代码更改为:

if ((menuPlayed == TRUE) && ([sender tag] == 0))

你可能需要对发送者进行类型转换,例如

if ((menuPlayed == TRUE) && ([(UIButton *)sender tag] == 0))

当然,你不应该只使用(UIButton *)进行类型转换。 使用正确的发件人对象类或使用一个 这是它的祖先课程。我相信“标签”已添加到 UIView在这个对象层次结构中。