gpt4 book ai didi

ios - 使用相同的重新排序对多个 NSArray 对象进行排序

转载 作者:行者123 更新时间:2023-11-29 13:28:09 24 4
gpt4 key购买 nike

我有几个 NSArray 对象,它们有效地表示可能被视为数据库表的内容。我想对其中一个进行排序,并让所有其他的按相同顺序排序。

这方面的一个例子是为“name”、“address”和“phone_number”设置 NSArray 对象,并按名称对它们进行排序。

当前的方法是自定义 shell 排序例程,它只对“名称”运行比较,但在所有受影响的数组上移动数据。这有效,而且相对干净。当然,由于 NSObjects vs C 数组的开销,您会受到打击。

有没有更快、更干净、更“iOS”的方式来做到这一点?

将其全部放入 SQLite 表中并以这种方式执行?

最佳答案

一种简洁的方法是将数据存储在 NSDictionary 对象的单个 NSArray 中。然后你可以像这样对数组进行排序:

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

我能想到的唯一其他方法是:

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

关于ios - 使用相同的重新排序对多个 NSArray 对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com