有没有一种简单的方法将NSString拆分成一个字符数组?

Mar*_*eIV 3 objective-c nsstring nsarray

有没有一种简单的方法将NSString拆分成一个字符数组?如果结果类型是NSString本身的集合,每个只有一个字符,那将是最好的.

是的,我知道我可以循环执行此操作,但我想知道是否有更快的方法可以使用C#中的LINQ以任何现有方法或函数执行此操作.

例如

// I have this...
 NSString * fooString = @"Hello";

// And want this...
NSArray * fooChars; // <-- Contains the NSStrings, @"H", @"e", @"l", @"l" and @"o"
Run Code Online (Sandbox Code Playgroud)

Gro*_*oot 11

你可以这样做(如果你想使用枚举器)

NSString *fooString = @"Hello";
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[fooString length]]; 

[fooString enumerateSubstringsInRange:NSMakeRange(0, fooString.length)
                              options:NSStringEnumerationByComposedCharacterSequences
                           usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
    [characters addObject:substring];
}];
Run Code Online (Sandbox Code Playgroud)

如果你真的想在NSArray中最终得到它

NSArray *fooChars = [NSArray arrayWithArray:characters];
Run Code Online (Sandbox Code Playgroud)

  • 只是一个细节:转换为`NSArray*`不转换数组,它只是转换指针,在这种情况下这是不必要的.如果要创建不可变数组,可以使用`arrayWithArray:`方法. (3认同)