Objective c iPhone-将NSString拆分为字符NSString

Objective c iPhone-将NSString拆分为字符NSString,objective-c,nsstring,nsdictionary,Objective C,Nsstring,Nsdictionary,我有一个2d数组{{“foo”,“food only”},{“bar”,“babies are rad”}…},我需要得到两个数组:一个字符和一个对应的单词。所以,"f","o","b","a","r"和"食物","只有","婴儿","是"," 那么首先,我如何从"foo"中得到"f","o","o"? 第二,我怎么能只保留那张单子?我猜是NSDictionary,只有当key不在那里时才加上给我@“f”:@“food”@“o”:@“only”,然后使用getObjects:和key:得到两个C

我有一个2d数组{{“foo”,“food only”},{“bar”,“babies are rad”}…},我需要得到两个数组:一个字符和一个对应的单词。所以,"f","o","b","a","r"和"食物","只有","婴儿","是","

那么首先,我如何从"foo"中得到"f","o","o"?

第二,我怎么能只保留那张单子?我猜是NSDictionary,只有当key不在那里时才加上给我@“f”:@“food”@“o”:@“only”,然后使用getObjects:和key:得到两个C数组,我将把它们转换成nsarray

根据下面的答案,我同意以下观点。我实际上并没有使用NSMutableDict,我只是在创建2个输出数组之前将字母添加到其中以进行唯一性检查:

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

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

如果需要字符串的单个字符,请尝试
-characterAtIndex:
。这将使它们成为
unichar
原语类型,然后可以将其包装在
NSString
中,如下所示:

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

要保持唯一性,您可以将对象存储在
NSMutableSet
中,但它不会保留对象添加到其中的顺序。

getCharacters将让您从一个字符数组开始:


你可以在一个可变集合中添加两个数组{“f”、@“foo”}和{“f”、@“foo”}后循环检查是否存在唯一性,最后是否会添加这两个数组,或者它们测试为相等,并且只添加一个?集合
{f,foo}
{f,foo}
的联合集是
{f,foo}
。无论添加多少次,相等的对象只显示一次。