将字符串逐个字符转换为循环中的NSMutableString

时间:2011-10-22 23:51:29

标签: objective-c nsstring

我正在尝试将字符串的每个字符gameWord放入NSMutableArray。 我将每个char转换为一个对象,然后使用以下代码将对象添加到NSMutableArray中:

NSMutableString *letterOne = [[NSMutableString alloc] initWithFormat:@"%C",[gameWord characterAtIndex:0]];

NSMutableString *letterTwo = [[NSMutableString alloc] initWithFormat:@"%C",[gameWord characterAtIndex:1]];

依旧......

我不明白为什么以下循环不起作用?

NSMutableArray *lettersArray = [[NSMutableArray alloc] initWithCapacity:[gameWord length]];

for (int x = 0 ; x <= [gameWord length] ; x++) {

    NSMutableString *letter = [[NSMutableString alloc]initWithFormat:@"%C",[gameWord characterAtIndex:x]];

       [lettersArray addObject:letter];
       [letter release];
    }

非常感谢帮助理解此问题以及将NSString的每个字符都放入单个对象(而非char s)的任何其他方法。

1 个答案:

答案 0 :(得分:2)

您的for循环超出了字符串的长度。数组从零开始,因此最后一个对象的索引为[gameWord length] - 1

这应该有效:

for (int x = 0; x < [gameWord length]; x++) {
    //...         ^--changed from <= to <
}