Преобразование строки за символом в строку NSMutableString в цикле - PullRequest
1 голос
/ 23 октября 2011

Я пытаюсь получить каждый отдельный символ строки, 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 Ответ

2 голосов
/ 23 октября 2011

Ваш for цикл выходит за пределы длины строки. Массивы начинаются с нуля, поэтому последний объект имеет индекс [gameWord length] - 1.

Это должно работать:

for (int x = 0; x < [gameWord length]; x++) {
    //...         ^--changed from <= to <
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...