2012-09-25 31 views
1

排序多个对象的NSArray我有几个NSArray对象,有效的,代表的是什么就可以考虑数据库表中的内容。我想排序其中的一个,并让所有其他人按照相同的顺序排序。用相同的重新排序

这方面的一个例子是对“名”,“地址”和“PHONE_NUMBER” NSArray对象,并通过名称进行排序他们。

目前的方法是一个自定义外壳排序过程,只有运行比较的“名字”,但移动数据周围所有受影响的阵列。这工作,它相对干净。当然,由于NSObjectsvs C阵列的开销,您会受到打击。

是否有更快,更清洁,更“iOS版”的方式来做到这一点?

把它全部放到一个SQLite表中并且这样做?

回答

1

一种清洁方法是将数据存储在单个NSDictionaryNSArray对象。然后你就可以在阵列这样排序:

NSSortDescriptor *sortName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
NSArray *sortedArray = [originalArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortName]] 

我能想到的唯一的另一种方法是:

  • 创建索引,即包含数字阵列0,1,..., N-1。
  • 根据name数组的内容对索引进行排序。
  • 对于每个数组,根据原始数组和排序索引创建一个有序数组。
+0

我最后做它的外壳排序过程里面,因为我有几个平行的阵列做,感觉干净。你的回答很好,所以我接受了。 –