разделить слово на символы с помощью строковых методов - PullRequest
0 голосов
/ 15 января 2010

Попытка разбить то, что пользователь пишет в текстовом поле, на массив, полный символов в набранных им вещах.

вот что у меня есть

-(IBAction) generateFlashNow:(id)sender{

[textField resignFirstResponder];
NSString *string1 = textField.text;
NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@"" withString:@","];
NSArray *arrayOfLetters = [string2 componentsSeparatedByString:@","];

NSLog(@"Log Array :%@", arrayOfLetters);

//NSArray *imageArray = [[NSArray alloc] init];

NSLog(@"Log First Letter of array: %@",[arrayOfLetters objectAtIndex:0]);

}

Что я делаю не так?

1 Ответ

0 голосов
/ 15 января 2010

stringByReplacingOccurrencesOfString ничего не делает, когда вы передаете пустую строку "", поэтому string2 является идентичной копией string1, следовательно, запятые отсутствуют, и операция разбиения завершается неудачей.

Есть много способов сделать это. Я могу думать о двух:

Преобразовать в массив символов:

NSString *string = @"Hello";
const char *characters = [string UTF8String];
for(int i=0; i<sizeof(characters); i++) {
    NSLog(@"%c", characters[i]);
}

Или, если вы хотите иметь дело только с объектами, переберите каждый метод и создайте вручную массив:

NSString *string = @"Hello";
NSMutableArray *array = [[NSMutableArray alloc] init];
for(int i = 0; i < [string length]; i++) {
    NSString *myChar = [NSString stringWithFormat:@"%c", [string characterAtIndex:i]];
    [array addObject:myChar];
}

Вы можете добавить приведенную выше логику к методу, подобному toArray, в качестве категории в самой NSString, поэтому все строки получают эту функциональность, если это распространенный случай для вашего приложения. Оформите эту статью для получения дополнительной информации о категориях. Вы бы просто позвонили [someString toArray], чтобы получить представление массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...