Iphone 消息:预期的标识符

Iphone 消息:预期的标识符,iphone,objective-c,Iphone,Objective C,为什么会出现这种错误?我想我已经关闭了所有的括号。代码如下: int i=0; while(i<count){ if([[ageMatch rangeOfString:age].location != NSNotFound] && [[glassesSex rangeOfString:gender].location !=NSNotFound] && [[faceMatch rangeOfString:shape].location

为什么会出现这种错误?我想我已经关闭了所有的括号。代码如下:

  int i=0;

    while(i<count){

    if([[ageMatch rangeOfString:age].location != NSNotFound] && [[glassesSex rangeOfString:gender].location !=NSNotFound] && [[faceMatch rangeOfString:shape].location != NSNotFound]  ){ //Expected identifier
            [arrayNuovo insertObject:dictionary atIndex:i];

        }
        i++;
     }
inti=0;
而(i你应该改变

if([[ageMatch rangeOfString:age].location != NSNotFound] && [[glassesSex rangeOfString:gender].location !=NSNotFound] && [[faceMatch rangeOfString:shape].location != NSNotFound]  )

当您执行布尔测试时,您可以像
[string rangeOfString:age].location!=NSNotFound
那样执行,并且不将它们包含在[and]

中使用此代码

while(i

这不是Smalltalk。布尔运算符不是消息发送。
 if([ageMatch rangeOfString:age].location != NSNotFound && 
    [glassesSex rangeOfString:gender].location !=NSNotFound && 
    [faceMatch rangeOfString:shape].location != NSNotFound  )
while(i < count){
if(([ageMatch rangeOfString:age].location != NSNotFound) && ([glassesSex rangeOfString:gender].location !=NSNotFound) && ([faceMatch rangeOfString:shape].location != NSNotFound)  ){ //Expected identifier
        [arrayNuovo insertObject:dictionary atIndex:i];
            }
    i++;
}