【问题标题】:sort contents of 4 different arrays into same order将 4 个不同数组的内容排序为相同的顺序
【发布时间】:2016-12-22 22:39:42
【问题描述】:

我有 4 个数组:

self.packName.append(object["packName"] as! String)
self.packDescription.append(object["packDesctription"] as! String)
self.packTitle.append(object["packTitle"] as! String)
let image = object.value(forKey: "file") as? PFFile
self.packImage.append(image!)

此时它们被创建并且所有内容都排列整齐(即,packName 与 packImage 匹配。但是,如果我尝试对它们进行排序

self.packName = self.packName.sorted(by: { $0 < $1 })
self.packDescription = self.packDescription.sorted(by: { $0 < $1 })
self.packTitle = self.packTitle.sorted(by: { $0 < $1 })
self.packImage = self.packImage.sorted(by: { $0.name < $1.name })

它们都是不匹配的,因为这是按字母顺序对每个数组进行排序。

我怎样才能对所有 4 个相同的排序?

【问题讨论】:

  • 为什么要维护4个并行数组?您几乎肯定应该使用结构数组。
  • 因为我是 n00b,我不知道自己在做什么,甚至不知道在这种情况下要搜索什么 :) 感谢您提供的提示,我将对其进行调查。

标签: ios arrays swift sorting


【解决方案1】:

这对它进行了排序。谢谢你的提示

struct packStruct {
    var packName : String
    var packDescription : String
    var packTitle : String
    var packImage : PFFile
}

var packArray = [packStruct]()

var arrayName : String = ""
var arrayDescription : String = ""
var arrayTitle : String = ""
var arrayImage : PFFile

for object in packs {

    self.arrayName = object.object(forKey: "packName") as! String
    self.arrayDescription = object.object(forKey: "packDesctription") as! String
    self.arrayTitle = object.object(forKey: "packTitle") as! String
    self.arrayImage = object.object(forKey: "file") as! PFFile

    self.packArray.append(packStruct(packName: self.arrayName, packDescription: self.arrayDescription, packTitle: self.arrayTitle, packImage: self.arrayImage))

}
// returns the array with all the data
print(packArray)

并从数组中获取数据

self.packArray[indexPath.item].packDescription

并且可以排序:

self.packArray = self.packArray.sorted{ $0.packName < $1.packName }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多