我有一个简单的NSArray,它有一些数组作为对象,有一些日期和字符串作为对象:
我将主数组用于我的表视图 - >每个细胞都有自己的'二级阵列'。 现在我想通过NSDate对象对主数组进行排序。这听起来很容易,但我在网上找不到任何解决方案。
我考虑使用NSSortDesriptors,但那些只是按主数组中的对象排序数组,而不是在辅助数组中。
希望你能帮助我
编辑:如果我使用NSDictionary作为辅助数组会解决问题吗?
答案 0 :(得分:4)
如果您的应用针对iOS 4.0或更高版本,您应该可以使用NSArray sortedArrayUsingComparator:
NSArray *sortedArray = [mainArray sortedArrayUsingComparator: ^(id obj1, id obj2) {
return [[obj1 objectAtIndex:0] compare:[obj2 objectAtIndex:0]];
}];
这假设日期字段始终位于内部数组的索引0中。如果您使用字典并按名称键入日期字段,它可能会更清晰,但如果您对始终保留在索引0中的日期字段感到满意,则上述情况应该有效。
答案 1 :(得分:1)
假设我已正确理解您的数据结构,这应该是关闭的:
NSArray *sortedArray = [mainArray sortedArrayUsingComparator:^(id ary1, id ary2) {
NSArray *array1 = (NSArray *)ary1;
NSArray *array2 = (NSArray *)ary2;
NSDate *date1 = (NSDate *)[array1 objectAtIndex:0];
NSDate *date2 = (NSDate *)[array2 objectAtIndex:0];
return [date1 compare:date2];
}];