'解析问题''预期表达'可能是一个不好的做法IF声明?

时间:2013-03-06 16:45:04

标签: ios objective-c

我确定这段代码是非常糟糕的做法,我不知道我还是新手,我只是试图找出一种可行的方法,但我一直被抛出错误'Parse Issue' '预期表达'。

if ((firstLabel == nil) && ([theArray objectAtIndex:0] == char A||char B||
char C||char D||char E||char F||char G||char H||char I||char J||char K||
char L||char M||char N||char O||char P||char Q||char R||char S||char T||
char U||char V||char W||char X||char Y||char Z))
    {
        [firstLabel setText:[theArray objectAtIndex:0]];
    };

2 个答案:

答案 0 :(得分:0)

我假设您要检查角色是否为a,b,c,d,.. 如果theArray是一个NSArray,它不能保持字符,所以我假设NSStrings

如果语法是

... [theArray objectAtIndex:0] == @"A" || [theArray objectAtIndex:0] == @"B" || [theArray objectAtIndex:0] == @"C"

但更好:

if(theArray.count) {
    id str = @"ABCDEFGHI"; //allowed
    id needle = [theArray objectAtIndex:0];
    if([str rangeOfString:needle].location!=NSNotFound) { 
        //its in!
    }
}

答案 1 :(得分:-1)

创建一个字符集并根据它进行检查:

NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTWXYZ"];
unichar c = [theArray objectAtIndex:0];
if ((firstLabel == nil) && [myCharSet characterIsMember:c])
{
  [firstLabel setText:[NSString stringWithFormat:@"%c",[theArray objectAtIndex:0]];
}

希望这有帮助。