gpt4 book ai didi

objective-c - 对包含包含数组的对象的 Objective-c 数组进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:10 24 4
gpt4 key购买 nike

哇...多么好的标题。所以我有一个 NSMutableArray,它分配了从 API 调用中检索到的数据。我无法控制 API 调用响应的结构,我想按照提供的格式对数组进行排序。 (当然欢迎其他解决方案)

这是一个愚蠢的例子(为了简单起见),但是我想要排序的数组可以这样表示:

myObjects = array(  0 => object(    name => @"Jack",    favoriteNumbers => object(      numbers => array(        0 => 7,        1 => 11,        2 => 6      )    )  ),  1 => object(    name => @"Jill",    favoriteNumbers => object(      numbers => array(        0 => 1,        1 => 2,        2 => 3      )    )  ),  3 => object(    name => @"Sally",    favoriteNumbers => object(      numbers => array(        0 => 68,        1 => 103,        2 => 99      )    )  ))

我知道我可以简单地按名称排序,例如:

NSSortDescriptor *sortDescriptor;sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO] autorelease];NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];NSArray *sortByDurationArray = [myObjects sortedArrayUsingDescriptors:sortDescriptors]; // the variable "myObjects" holds the array representation from above

但我如何根据每个人的第一个最喜欢的数字对数组进行排序?

所需的结果将按以下顺序对数组进行排序:Jill、Jack、Sally;因为吉尔第一个最喜欢的数字是 1, jack 的是 7,莎莉的是 68。

最佳答案

您可以在这里使用 NSSortDescriptorselector 属性。如果这些对象是它们自己的子类,则创建一个选择器——类似 -compareFavoriteNumberToObject: 的东西,返回一个 NSComparisonResult。如果对象只是类似于 NSDictionary 的东西,您可以在类上创建一个类别来进行比较。

关于objective-c - 对包含包含数组的对象的 Objective-c 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com