我有一个由字典填充的数组,并且我需要按字典的一个键的值按字母顺序对该数组进行排序。
这是我的数组:
tu dictus: (
{
brand = Ryul;
productTitle = Any;
quantity = 1;
subBrand = "Ryul INJ";
type = Product;
},
{
brand = Trol;
productTitle = Different;
quantity = 2;
subBrand = "";
type = Brand;
},
{
brand = Dtor;
productTitle = Any;
quantity = 1;
subBrand = "";
type = Product;
},
{
brand = Ryul;
productTitle = Different;
quantity = 2;
subBrand = "Ryul CHES";
type = SubBrand;
},
{
brand = Anan;
productTitle = Any;
quantity = 1;
subBrand = "";
type = Product;
}
)通常,为了对数组进行排序,我将使用
myArray = [uniqueProdsArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];但是如何使用字典的brand键进行排序呢?
发布于 2012-03-01 09:00:40
我想这样就可以了:
brandDescriptor = [[NSSortDescriptor alloc] initWithKey:@"brand" ascending:YES];
sortDescriptors = [NSArray arrayWithObject:brandDescriptor];
sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors];我从Sort Descriptor Programming Topics上提取了代码。此外,Key-Value Coding也发挥了作用,因为sortedArrayUsingDescriptors:将向myArray中的每个元素发送一个valueForKey:,然后使用标准比较器对返回值进行排序。
发布于 2013-08-26 18:20:12
我们使用下面的方法得到了解决方案
[self.jsonData sortUsingDescriptors: [NSArray arrayWithObjects: [NSSortDescriptor sortDescriptorWithKey:"fullname" ascending:YES], [NSSortDescriptor sortDescriptorWithKey:"id" ascending:NO], nil]];其中:-
JSON - MutableArray,保存解析后的jsonData数据。
fullname -我们要排序的数据。
id -内部字典附带的唯一数据。
发布于 2015-09-19 15:14:13
arrSorted = [arrBrand sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if ([[obj1 valueForKey:@"iUserId"] integerValue] > [[obj2 valueForKey:@"iUserId"] integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([[obj1 valueForKey:@"iUserId"] integerValue] < [[obj2 valueForKey:@"iUserId"] integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];https://stackoverflow.com/questions/9509138
复制相似问题