2011-09-09 14 views
0

私のメソッドは、入力文字列からゲームレベルの情報を抽出することを目的としています。入力は2D配列の再生領域のサイズと、2D配列のどの位置にどの項目が存在するかを指定します。NSString "Expected": 'before'] 'token'エラー

たとえば、「4,3。a、b、c。d、e、f。g、h、i。j、k、l」は、このように見えるように4列と3行を構成しますハイフン):

は--- D --- G --- J

B --- E --- hは--- --- --- F

C k個i --- l

コードは最後の行までうまく動作し、エラーが発生します: "期待": '前' ''トークン '。

私はこれをしばらく解決しようとしていましたので、私が逃したことが愚かなものなら、私は非常に恥ずかしいでしょう!どんな助けでも大歓迎です。

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

答えて

5

あなたは[]の余分なセットを持っています。あなたが最後の行に余分なブラケットを持って

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

おかげで - そのような簡単な修正を。以前はどうやって見たことがありませんでしたか? あまりにも反応したすべての他の人々のおかげで! – JimmyB

2

最後の行のためにこれを試してみてください:

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

、このように変更します。:あなたは欲しい

NSString *columnString = [[NSString alloc] initWithString:[levelDataStringColumns objectAtIndex:0]]; 
関連する問題