在Objective C中对数据数组进行排序

时间:2013-05-15 15:25:43

标签: objective-c sorting nsmutablearray timestamp

说我已经使用NSMutableArray存储了一些数据。存储的数组包含时间戳和实时数据

我每次都从传感器设备接收大小为6的数组。第一个位置始终具有时间戳数据,剩余位置由实时数据占用。所以,我已经将它们按顺序存储在NSMutableArray中 enter image description here

这里我收到时间戳不同的数据。因此,我需要按照升序顺序对时间戳进行排序,该数据与数据(大小为5的数组)相关联。这样我就可以绘制与每个时间戳相关联的图形。

所以我的问题是如何在不干扰与每个TimeStamp值相关联的数据的情况下对时间戳进行排序。

2 个答案:

答案 0 :(得分:2)

您可以使用-sortedArrayUsingFunction:context:

例如。

NSArray * sortedArray = [otherArray sortedArrayUsingFunction: DataComparatorF context:nil];

NSInteger DataComparatorF (id a, id b, void *context)
{
   // return NSOrderedSame, NSOrderedAcending or NSOrderedDecending of a with respect to b
}

答案 1 :(得分:0)

我建议使用不同的格式来存储你的数据 - 我会使用一个带有2个键的字典数组,一个用于时间戳,一个用于数据(其值将是5个值的数组)。然后,您可以使用sortedArrayUsingDescriptors:对数组进行排序,使用sortDescriptorWithKey:ascending:作为描述符(并传递用于时间戳的任何键名)。你没有说明你的时间戳是什么形式。如果它是一个字符串,你可能必须先将它转换为NSDate对象才能正确排序。