【发布时间】:2018-10-06 03:05:39
【问题描述】:
我正在对集合视图中的数据数组进行排序。我想用 3 种方式对数据进行排序:按字母顺序、数字顺序和根本不排序(根本不排序应该按照数据在模型中的设置顺序排序。)排序通过 3 个不同的 UIButtons 进行。
在我下面的代码中,allAnimalsArray 是集合视图中显示的完整数据数组。
// Animal Name button pressed
let sortAZ = allAnimalsArray.sorted(by: { $0.animalName < $1.animalName })
allAnimalsArray = sortAZ
allAnimalsCollectionView.reloadData()
// Animal Weight button pressed
let sortByWeight = allAnimalsArray.sorted(by: { $0.pounds < $1.pounds })
allAnimalsArray = sortByWeight
allAnimalsCollectionView.reloadData()
// NO SORT button pressed
let noSorting = allAnimalsArray
allAnimalsArray = noSorting
allAnimalsCollectionView.reloadData()
我的问题是 NO SORT 方法不会改变排序。它保持与之前按下的顺序相同的顺序。
我的理解是 .sorted 制作了数据的副本,因此保留了原始数据(而 .sort 修改了原始数据)。
如何更改上面的 NO SORT 方法以简单地显示数据而不进行任何排序? (意味着它准确地显示了数据在模型中的设置方式)
【问题讨论】:
标签: arrays swift sorting uicollectionview