以下是我的情况:
我操纵了6个NSMutableArrays。其中一个包含NSDate
个对象,其他包含NSNumber
个。当我填充它们时,我为它们中的每一个使用addObject:
,因此每个数组的索引0包含我在日期数组中的索引0处的日期所需的所有值。
我想确保数组都按照日期数组(按日期排序,按升序排序)进行排序,这意味着在排序过程中,如果将日期数组的第5行移动到第1行,则必须是也应用于所有其他数组。
我以前使用CoreData,但我必须不再使用它(请不要问为什么,这是偏离主题的;))。在CoreData中,我可以使用NSSortDescriptor
,但我不知道如何使用多个NSArray
来...
与往常一样,提示/答案/解决方案总是受到赞赏:)
答案 0 :(得分:4)
这是一个常见问题。使用以下方法。
compare:
对此对象实施[NSDate compare:]
方法(此步骤可以跳过,但这样更干净。)答案 1 :(得分:2)
我认为有更好的解决方案可以获得NSDrray NSDrray对象。
NSArray *allValues = [[NSArray alloc] init];
NSDictionary *dict = @{"Date" : [NSDate date], @"Key1" : @"Value1", @"Key2" : @"Value2"};
然后,您可以使用sortDescriptor对此数组进行排序,而不会出现任何问题。 然后您也可以根据需要使用Comparator或Sort Desriptor。
答案 2 :(得分:1)
将存储在数组中的所有项目包装到单个对象中。您之前的6个阵列中的每一个都是一个属性。
在该对象中,您可以实现
- (NSComparisonResult)compare:(YourClass *)otherObject {
return [self.date compare:otherObject.date];
}
您现在可以对数组进行排序,它们将按日期排序。