componentsSeparatedByString:
奇妙な結果を出すことに問題があります。
このコードで:
CCLOG(@" Found string %@",string);
tokens = [string componentsSeparatedByString:@"[,]"];
CCLOG(@" sanity %@", (NSString *)[tokens objectAtIndex:0]);
int type = [(NSString *)[tokens objectAtIndex:0] integerValue];
int x = [(NSString *)[tokens objectAtIndex:1] integerValue]; //<< breakpoint
この出力ログを取得します。
2013-03-03 21:29:39.184 Legends[33427:c07] Found string 1[0,5]
2013-03-03 21:29:39.185 Legends[33427:c07] sanity 1[0,5]
したがって、配列トークンの最初のオブジェクトには文字列全体が含まれているため、プログラムが最後の行で中断することは理にかなっていますが、文字列をとに分割するべきではありません@"1[0,5]"
か?@"1"
@"0"
@"5"