0

私はこのコードを試しています...

NSString *tileString = [[NSString alloc] init];    

for (int i = 0; i < [[GameP objectForKey:@"groundMap"] length]; i += 5) {

            tileString = [[GameP objectForKey:@"groundMap"] substringWithRange:NSMakeRange(i, 5)];

            [tileString stringByAppendingString:@"0000"];

            [sharedInstance.groundMap addObject:tileString];
        }

オブジェクトからの5文字の文字列は「t0001」なので、「t0001000」になりたいのですが、sharedInstance.groundMapを確認すると、配列内のすべての文字列が「t0001」のままです。

代わりにNSMutableStringを使用する必要がありますか?

4

1 に答える 1

3

結果を割り当てていません。これを変える:

[tileString stringByAppendingString:@"0000"];

に:

titleString = [tileString stringByAppendingString:@"0000"];

あなたもできるもう少しクリーンアップがあります:

for (int i = 0; i < [[GameP objectForKey:@"groundMap"] length]; i += 5) {
    NSString *tileString = [[GameP objectForKey:@"groundMap"] substringWithRange:NSMakeRange(i, 5)];
    titleString = [tileString stringByAppendingString:@"0000"];
    [sharedInstance.groundMap addObject:tileString];
}
于 2012-10-29T00:52:44.133 に答える