NSString“预期':'之前'''令牌”错误

时间:2011-09-09 00:02:01

标签: objective-c nsstring compiler-errors nsarray

我的方法旨在从输入字符串中提取游戏关卡的信息。输入指定2D阵列播放区域的大小,以及2D阵列中哪些点存在的项目。

例如,“4,3.a,b,c.d,e,f.g,h,i.j,k,l”将包含4列3行,看起来像这样(没有连字符):

一个--- --- d ---克Ĵ

B ---电Ë---高---ķ

Ç--- F --- I ---升

代码工作正常,直到最后一行,我得到错误: “预期':'之前'''令牌”。

我一直试图解决这个问题,所以如果我错过了一些愚蠢的话,我会很尴尬!任何帮助将不胜感激。

-(void)readLevelDataFromString:(NSString*)inputString {
    //remove spaces from the input
    NSString *tempString = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""];

    //make mutable
    NSMutableString *levelDataString = [NSMutableString stringWithString:tempString];

    //trim first 4 characters, which we don't need
    [levelDataString deleteCharactersInRange:NSMakeRange(0, 4)];

    //separate whole string into an array of strings, each of which contains information on the particular column
    NSArray *levelDataStringColumns = [levelDataString componentsSeparatedByString:@"."];

    NSAssert([levelDataStringColumns count] == numColumns, @"In the level data string, the number of columns specified did not match the number of X tiles present.");

    NSString *columnString = [[NSString alloc] initWithString:[[levelDataStringColumns] objectAtIndex:0]];
}

3 个答案:

答案 0 :(得分:5)

你有一套额外的[]。你想要:

NSString *columnString = [[NSString alloc] initWithString:[levelDataStringColumns objectAtIndex:0]];

答案 1 :(得分:4)

最后一行有一个额外的括号,请将其更改为:

NSString *columnString = [[NSString alloc] initWithString:[levelDataStringColumns objectAtIndex:0]];

答案 2 :(得分:2)

在最后一行尝试这个:

 NSString *columnString = [[NSString alloc] initWithString:[levelDataStringColumns objectAtIndex:0]];