我的方法旨在从输入字符串中提取游戏关卡的信息。输入指定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]];
}
答案 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]];