Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将NSMutableArray排序两次_Objective C - Fatal编程技术网

Objective c 将NSMutableArray排序两次

Objective c 将NSMutableArray排序两次,objective-c,Objective C,我对一些NSMutableArray进行了排序,这些数组中有许多字段的字典。 我最感兴趣的两个字段是日期和一些计数整数 我已使用日期对数组进行排序: NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"dateCreated" ascending:YES]; sortedWithDates=[sortedWithDates sortedArrayUsingDescriptors:[NSArray

我对一些
NSMutableArray
进行了排序,这些数组中有许多字段的字典。 我最感兴趣的两个字段是日期和一些计数整数

我已使用日期对数组进行排序:

 NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"dateCreated"  ascending:YES];
   sortedWithDates=[sortedWithDates sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
现在,我只想获取数组中的对象-今天,并根据这个计数整数(最高的第一个)对它们再次排序

对于相同的
NSSortDescriptor
类,有没有一种简单的方法可以做到这一点


谢谢。

您可以随时使用相同的描述符。当然,您创建的描述符将始终按“dateCreated”升序排序,但它可以用于对任意数量的数组进行排序


您可以使用现代语法@[descriptor]代替[NSArray arrayWithObjects:descriptor,nil]@[object…]创建一个NSArray,其中包含方括号之间的对象

您可以随时使用相同的描述符。当然,您创建的描述符将始终按“dateCreated”升序排序,但它可以用于对任意数量的数组进行排序


您可以使用现代语法@[descriptor]代替[NSArray arrayWithObjects:descriptor,nil]@[object…]创建一个NSArray,其中包含方括号之间的对象

您可以随时使用相同的描述符。当然,您创建的描述符将始终按“dateCreated”升序排序,但它可以用于对任意数量的数组进行排序


您可以使用现代语法@[descriptor]代替[NSArray arrayWithObjects:descriptor,nil]@[object…]创建一个NSArray,其中包含方括号之间的对象

您可以随时使用相同的描述符。当然,您创建的描述符将始终按“dateCreated”升序排序,但它可以用于对任意数量的数组进行排序

您可以使用现代语法@[descriptor]代替[NSArray arrayWithObjects:descriptor,nil]@[object…]创建一个NSArray,其中包含方括号之间的对象

有没有一种简单的方法可以使用相同的NSSortDescriptor类来实现这一点

是的,有一个非常简单的方法。您可以使用描述符将多个排序描述符传递给
-sortedarray:
。根据第一个描述符相等的项目将根据第二个(或第三个等)进行排序

从文档中:

第一个描述符指定要在中使用的主键路径 对接收数组的内容进行排序。任何后续描述符都是 用于进一步优化具有重复值的对象的排序

因此,您的代码可以如下所示:

NSSortDescriptor *date = [[NSSortDescriptor alloc] initWithKey:@"dateCreated"  ascending:YES];
NSSortDescriptor *count = [[NSSortDescriptor alloc] initWithKey:@"count"  ascending:YES];
sortedWithDates=[sortedWithDates sortedArrayUsingDescriptors:@[date, count]];
注意:我对描述符数组使用了较新的对象文字语法。这只是风格的问题——您的
+arrayWithObjects:
调用也很好

有没有一种简单的方法可以使用相同的NSSortDescriptor类来实现这一点

是的,有一个非常简单的方法。您可以使用描述符将多个排序描述符传递给
-sortedarray:
。根据第一个描述符相等的项目将根据第二个(或第三个等)进行排序

从文档中:

第一个描述符指定要在中使用的主键路径 对接收数组的内容进行排序。任何后续描述符都是 用于进一步优化具有重复值的对象的排序

因此,您的代码可以如下所示:

NSSortDescriptor *date = [[NSSortDescriptor alloc] initWithKey:@"dateCreated"  ascending:YES];
NSSortDescriptor *count = [[NSSortDescriptor alloc] initWithKey:@"count"  ascending:YES];
sortedWithDates=[sortedWithDates sortedArrayUsingDescriptors:@[date, count]];
注意:我对描述符数组使用了较新的对象文字语法。这只是风格的问题——您的
+arrayWithObjects:
调用也很好

有没有一种简单的方法可以使用相同的NSSortDescriptor类来实现这一点

是的,有一个非常简单的方法。您可以使用描述符将多个排序描述符传递给
-sortedarray:
。根据第一个描述符相等的项目将根据第二个(或第三个等)进行排序

从文档中:

第一个描述符指定要在中使用的主键路径 对接收数组的内容进行排序。任何后续描述符都是 用于进一步优化具有重复值的对象的排序

因此,您的代码可以如下所示:

NSSortDescriptor *date = [[NSSortDescriptor alloc] initWithKey:@"dateCreated"  ascending:YES];
NSSortDescriptor *count = [[NSSortDescriptor alloc] initWithKey:@"count"  ascending:YES];
sortedWithDates=[sortedWithDates sortedArrayUsingDescriptors:@[date, count]];
注意:我对描述符数组使用了较新的对象文字语法。这只是风格的问题——您的
+arrayWithObjects:
调用也很好

有没有一种简单的方法可以使用相同的NSSortDescriptor类来实现这一点

是的,有一个非常简单的方法。您可以使用描述符将多个排序描述符传递给
-sortedarray:
。根据第一个描述符相等的项目将根据第二个(或第三个等)进行排序

从文档中:

第一个描述符指定要在中使用的主键路径 对接收数组的内容进行排序。任何后续描述符都是 用于进一步优化具有重复值的对象的排序

因此,您的代码可以如下所示:

NSSortDescriptor *date = [[NSSortDescriptor alloc] initWithKey:@"dateCreated"  ascending:YES];
NSSortDescriptor *count = [[NSSortDescriptor alloc] initWithKey:@"count"  ascending:YES];
sortedWithDates=[sortedWithDates sortedArrayUsingDescriptors:@[date, count]];

注意:我对描述符数组使用了较新的对象文字语法。这只是风格的问题——您的
+arrayWithObjects:
调用也很好。

它的可能副本肯定不是副本。仔细阅读问题和你给我的链接。我已经知道如何对数组排序了。我只想用sortDescriptor对它的一部分进行排序。它的可能副本肯定不是副本。仔细阅读问题和你给我的链接。我已经知道如何对数组排序了。我只想用sortDescriptor对它的一部分进行排序。它的可能副本肯定不是副本。仔细阅读问题和你给我的链接。我已经知道如何对数组排序了。我只想用sortDescriptor对它的一部分进行排序。它的可能副本肯定不是副本。仔细阅读问题和你给我的链接。我已经知道怎么做了