objective-c - 组件通过字符串分隔 : @"" (every character in array)

标签 objective-c cocoa nsstring nsarray

我想添加 NSArray ("123" -> To NSArray with "1","2","3") 中的每个字符。我测试过componentsSeparatedByString:@""componentsSeparatedByString:nil ,但是不起作用,有人可以帮助我吗?

最佳答案

根据您的需要,您可能希望通过组合字符枚举字符串,这考虑了对重音字符进行编码的不同方式。

这可能不是一个大问题,但如果您使用 enumerateSubstringsInRange:options:usingBlock: 至少它可以得到处理。代码可以如下所示:

NSMutableArray *result;  

NSString *string = @"Genève, Zu\u0308rich, Bellinzona";
//                           ^
//      What humans know as: Zürich

result = [NSMutableArray array];
[string enumerateSubstringsInRange: NSMakeRange(0,string.length)
                           options: NSStringEnumerationByComposedCharacterSequences
                        usingBlock: ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
                            // If you want to see the way the string has been split
                            NSLog(@"%@", substring);
                            [result addObject: substring];
                        }
];

请注意,“è”是单个字符,但“ü”已被编码为组合字符。两者仍然被正确识别以在循环中使用。如果您使用 characterAtIndex: “ü”将被分成两部分(u 和 ¡),这很可能不是您想要的。

关于objective-c - 组件通过字符串分隔 : @"" (every character in array),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494732/

相关文章:

ios - 为什么隐藏状态栏会完全破坏我的简单动画?

objective-c - Cocoa:源列表数据上的上下文菜单 - 不是标题

ios - 将字符串转换为 url 以将数据发送到 mysql objective c iOS

IOS:将字符串转换为十六进制数组

ios - 在循环中重复分配 NSString 同时避免内存泄漏

objective-c - 加载后指向 NSWindow Xib 的指针?

objective-c - 如何在iOS5/XCode 4.3中导入QuartCore?

ios - 提高 captureStillImageAsynchronouslyFromConnection 的速度

macos - 在 NSTextField 中输入时使鼠标光标保持可见

macos - 如何根据拖动的控件动态滚动NSScrollView