iPhone - Разделение NSString на символы NSStrings - PullRequest
0 голосов
/ 19 марта 2011

У меня есть 2d NSArray из {{"foo", "only food"}, {"bar", "babies is rad"} ...}, и мне нужно получить 2 NSArrays: одинсимволов и одного из соответствующих слов.Так что @ "f", @ "o", @ "b", @ "a", @ "r" и @ "food", @ "only", @ "babies", @ "are", @ "rad"были бы мои два NSArray's NSStrings.

Итак, во-первых, как я могу получить @ "f", @ "o", @ "o" от @ "foo"

А во-вторых, как я могу сохранить только уникальные файлы?Я угадываю NSDictionary и добавляю только если ключа там нет, давая мне @ "f": @ "food" @ "o": @ "only", тогда использую getObjects: andKeys: чтобы получить два массива C, которые я преобразую вNSArrays ..

Основываясь на ответе ниже, я пошел со следующим.На самом деле я не использовал NSMutableDict, я просто добавил к нему свои письма, чтобы проверить уникальность перед созданием двух моих выходных массивов:

        unichar ch = [[arr objectAtIndex:0] characterAtIndex:i];
        NSString *s = [NSString stringWithCharacters: &ch length: 1];

        if (![dict objectForKey:s]) {
        }

Ответы [ 2 ]

1 голос
/ 20 марта 2011

getCharacters поможет вам начать работу с массивом символов: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/getCharacters:

Вы можете циклически проходить и проверять уникальность после

0 голосов
/ 20 марта 2011

Если вам нужны отдельные символы строки, попробуйте -characterAtIndex:.Вы получите их как примитивный тип unichar, который затем можно обернуть в NSString примерно так:

unichar ch = ...;
NSString *chString = [NSString stringWithCharacters: &ch length: 1];

Чтобы сохранить уникальность, вы можете хранить объекты в NSMutableSet, хотяне сохранит порядок добавления объектов к нему.

...