Objective c 在循环中将字符串逐字符转换为NSMutableString

Objective c 在循环中将字符串逐字符转换为NSMutableString,objective-c,nsstring,Objective C,Nsstring,我试图将字符串的每个字符,gameWord,放入一个NSMutableArray。 我正在将每个char转换为一个对象,然后使用以下代码将对象添加到NSMutableArray: NSMutableString *letterOne = [[NSMutableString alloc] initWithFormat:@"%C",[gameWord characterAtIndex:0]]; NSMutableString *letterTwo = [[NSMutableString alloc

我试图将字符串的每个字符,
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];
    }
NSMutableArray*lettersArray=[[NSMutableArray alloc]initWithCapacity:[gameWord length]];

for(int x=0;x您的
for
循环超出了字符串的长度。数组是基于零的,因此最后一个对象的索引为
[gameWord length]-1

这应该起作用:

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