Ios ';分析问题'';预期表达式';可能是一种不好的做法,如果声明?

Ios ';分析问题'';预期表达式';可能是一种不好的做法,如果声明?,ios,objective-c,Ios,Objective C,我确信这段代码是非常糟糕的做法,我不知道我对它还是新手,我只是想找出一种可行的方法,但我一直被抛出一个错误“解析问题”“预期表达式” 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||cha

我确信这段代码是非常糟糕的做法,我不知道我对它还是新手,我只是想找出一种可行的方法,但我一直被抛出一个错误“解析问题”“预期表达式”

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]];
    };

我假设你想检查字符是否是a,b,c,d,。。 如果数组是NSArray,那么它不能容纳字符,所以我假设为nsstring

如果是,语法是

... [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!
    }
}

创建一个字符集并基于该字符集进行检查:

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

希望这能有所帮助。

它不是很可读…还可以尝试使它可读,错误会消失在初始化“unichar”的整数转换兼容指针中(又名'unsigned short',表达式类型为'id':/now it。。它有帮助吗?数组包含什么?一个NSString数组?在NSCharacterSet的一侧放置一个断点并逐行执行,然后您将看到哪一行出现问题?