好奇这个if语句有什么问题?

Pet*_*erK 0 iphone objective-c

有人可以解释这个"if声明"有什么问题吗?我明白了:

"左值作为任务的左操作数".

这不起作用:

if ([[prepDataArray objectAtIndex:iNDEX] boolValue] = YES) {
        NSLog(@"HARD");
    }
Run Code Online (Sandbox Code Playgroud)

虽然这有效:

diffQ = [[prepDataArray objectAtIndex:iNDEX] boolValue];
    if (diffQ = YES) {
        NSLog(@"HARD");
    }
Run Code Online (Sandbox Code Playgroud)

我确实意识到问题所在,并且'左值'表示我需要在左侧有不同的东西,但我不知道为什么以及如何在'if'语句中执行我想要的内容,如第一个示例中所尝试的那样.

如果有人能给我一个提示,我将不胜感激:-)

Tho*_*lin 7

if ([[prepDataArray objectAtIndex:iNDEX] boolValue] == YES) {
    NSLog(@"HARD");
}
Run Code Online (Sandbox Code Playgroud)

===

第一个不起作用,因为您尝试将BOOL(YES)分配给消息.第二个作品,因为你尝试指派BOOLdiffQ.这是正确的,但不是你所期望的结果(比较diffQYES)

常见的编程错误;)我已经完成了数百万次