【问题标题】:Sort NSStrings using caseInsensitiveCompare?使用 caseInsensitiveCompare 对 NSStrings 进行排序?
【发布时间】:2011-08-07 19:42:12
【问题描述】:
我想要实现的是:
1. 从我的 NSArray 中获取所有 NSDictionaries 中的 NSStrings(每个 NSDictionary 只有一个 NSString)
2.然后对所有的NSStrings进行排序,使所有Names按字母顺序排序。
例如:
假设有 Mark、Nick 和 Rob。我的数组中有 6 个 NSDictionaries(每个玩家有 2 个 nsdictionaries)。所以它看起来像这样(随机):
马克,罗伯,尼克,尼克,罗伯,马克
我想这样排序:
马克,马克,尼克,尼克,罗伯,罗伯
这可能吗?我该怎么做?
谢谢!
【问题讨论】:
标签:
objective-c
arrays
sorting
nsstring
nsdictionary
【解决方案1】:
您首先需要的是名称数组。假设“dictionaryArray”是字典数组的名称,而“name”是每个字典中的键之一:
NSArray *names = [dictionaryArray valueForKey:@"name"];
接下来,您对该数组进行排序。在这个特定的示例中,您实际上是在生成它的排序不可变副本:
NSArray *sortedNames = [names sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
如果您希望对可变数组进行排序,则在创建数组“名称”之后,您可以创建它的可变版本:
NSMutableArray *mutableNames = [NSMutableArray arrayWithArray:names];
然后您可以使用以下命令对其进行排序:
[mutableNames sortUsingSelector:@selector(caseInsensitiveCompare:)];
祝你工作顺利。