像 iPhone 上的地址簿排序一样对 NSString 的 NSArray 进行排序
我有一个字符串(名称)数组
,我想像 iphone 上的地址簿对它们进行排序一样对它们进行排序,
- 例如: éli ->在 E 下
- ,例如:àli ->在 A 下
- ,例如:4li -> # 有
什么建议吗?
I have an array of strings (names)
and i would like to sort them like how the address book on the iphone sorts them
- eg: éli -> under E
- eg: àli -> under A
- eg: 4li -> under #
any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要对字符串执行不区分变音符号的比较。
NSString
有一个
compare:options:
方法,其选项为NSDiacriticInsensitiveSearch
。编辑:
这是一个完整的示例,它将根据第一个字符变音符号不敏感来划分结果。我放入了一本字典,因此您需要自己跟踪排序的键才能正确显示。
You need to perform a diacritic insensitive comparison against the strings.
NSString
has acompare:options:
method with an option ofNSDiacriticInsensitiveSearch
.Edit:
Here is a full example that will section the results based on the first character diacritic insensitive. I put in a dictionary so you would need to keep track of the sorted keys on your own to display properly.
所有这些都位于
compare:
方法中,您将用作排序方法的选择器,更重要的是使用NSDiacriticInsensitiveSearch
选项。现在您需要在类别中添加
compareTheAddressBookWay:
方法!!Important!!:
使用
sortedArrayUsingSelector:
将兼容 iOS 最高 2.0使用
sortedArrayUsingComparator时:
将仅适用于iOS 4及更高版本。all lies within the
compare:
method you will use as the selector of your sorting method and more importantly with theNSDiacriticInsensitiveSearch
option.Now you need to add the
compareTheAddressBookWay:
method in a category!!Important!!:
Using
sortedArrayUsingSelector:
will be compliant for iOS up to 2.0while using
sortedArrayUsingComparator:
will ONLY work for iOS 4 and above.