Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用相同的重新排序对多个NSArray对象进行排序 我有几个 NSArray < /Cord>对象,这些对象有效地表示可能考虑数据库表的内容。我想对其中一个进行排序,并让所有其他的按相同的顺序进行排序_Ios_Sqlite_Sorting_Nsarray - Fatal编程技术网

Ios 使用相同的重新排序对多个NSArray对象进行排序 我有几个 NSArray < /Cord>对象,这些对象有效地表示可能考虑数据库表的内容。我想对其中一个进行排序,并让所有其他的按相同的顺序进行排序

Ios 使用相同的重新排序对多个NSArray对象进行排序 我有几个 NSArray < /Cord>对象,这些对象有效地表示可能考虑数据库表的内容。我想对其中一个进行排序,并让所有其他的按相同的顺序进行排序,ios,sqlite,sorting,nsarray,Ios,Sqlite,Sorting,Nsarray,例如,为“姓名”、“地址”和“电话号码”设置NSArray对象,并按名称对它们进行排序 当前的方法是一个自定义shell排序例程,它只对“name”进行比较,但在所有受影响的数组上移动数据。这是有效的,而且相对干净。当然,由于NSObjectsvsC数组的开销,您会受到影响 有没有一种更快、更干净、更“iOS”的方法可以做到这一点 将所有数据都放到SQLite表中,然后这样做?一种干净的方法是将数据存储在NSDictionary对象的单个NSArray中。然后可以按如下方式对数组进行排序: NS

例如,为“姓名”、“地址”和“电话号码”设置
NSArray
对象,并按名称对它们进行排序

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

有没有一种更快、更干净、更“iOS”的方法可以做到这一点


将所有数据都放到SQLite表中,然后这样做?

一种干净的方法是将数据存储在
NSDictionary
对象的单个
NSArray
中。然后可以按如下方式对数组进行排序:

NSSortDescriptor *sortName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
NSArray *sortedArray = [originalArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortName]]
我能想到的唯一其他方法是:

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

一种干净的方法是将数据存储在
NSDictionary
对象的单个
NSArray
中。然后可以按如下方式对数组进行排序:

NSSortDescriptor *sortName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
NSArray *sortedArray = [originalArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortName]]
我能想到的唯一其他方法是:

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

我最终在shell排序例程中完成了这项工作,因为我有几个并行数组要做,而且感觉更干净。你的答案很好,所以我接受了。我最终在shell排序例程中这样做,因为我有几个并行数组要做,它感觉更干净。你的回答很好,所以我接受了。