objective-c – 使用不同的键对NSDictionary的NSArray进行排序的
发布时间:2020-12-16 09:45:53 所属栏目:百科 来源:网络整理
导读:我正在努力寻找一种像这样排序NSArray的好方法: 它是一组NSDictionarys,我用它来跟踪长字符串中每个单词的外观.所以它可能看起来像这样: [{"hello",5},{"world",10},{"this",1},{"that",3}] 现在我想按值对这个NSDictionary进行排序,这样它看起来像这样:
我正在努力寻找一种像这样排序NSArray的好方法:
它是一组NSDictionarys,我用它来跟踪长字符串中每个单词的外观.所以它可能看起来像这样: [{"hello",5},{"world",10},{"this",1},{"that",3}] 现在我想按值对这个NSDictionary进行排序,这样它看起来像这样: [{"world",{"hello",3},1}] 我已经查看了NSSortDescriptor和sortDesciptors的initWithKey方法,但它要求键的名称相同,这不适用于我的情况. 你建议我在这种情况下使用什么?先感谢您! 解决方法
也许不是最有效的方式,但这样做
NSArray * d = @[@{@"world": @10},@{@"hello": @5},@{@"that": @3},@{@"this": @1}]; [d sortedArrayUsingComparator:^NSComparisonResult(NSDictionary * obj1,NSDictionary * obj2) { NSNumber * v1 = obj1[[obj1 allKeys][0]]; NSNumber * v2 = obj2[[obj2 allKeys][0]]; return [v1 compare:v2]; }]; 无论如何,数据组织不太适合这项任务.由于内部数据结构是字典,因此收集值非常麻烦.您可以考虑将内部数组作为数组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |