2011-10-22 70 views
1

我試圖得到一個字符串,gameWord的每個個性,爲NSMutableArray。 我把每個char成一個對象,然後用下面的代碼添加對象到NSMutableArray將字符串轉換成字符一個字符的的NSMutableString環路

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)的每個字符的任何其他方式。

回答

2

for循環超出了字符串的長度。數組從零開始,因此最後一個對象的索引爲[gameWord length] - 1

這應該工作:

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

是啊,這工作 - 謝謝! – pete