按变量对自定义对象数组进行排序

时间:2015-09-27 19:07:57

标签: ios arrays swift sorting

我创建了一个自定义类来保存图像及其字符串(名称)

class Countries: NSObject {

var countryName : String
var countryFlag : UIImage

init(countryName: String, countryFlag: UIImage) {
    self.countryName = countryName
    self.countryFlag = countryFlag
    super.init()

}

}

我宣布了班级

    var myList: Array<Countries> = []

将每个国家/地区信息添加到数组

let image = UIImage(data:imageData!)

let dd = Countries(countryName: object["CountryName"] as! String, countryFlag: image!)

self.myList.append(dd)

我尝试使用下面的代码对数组进行排序但不起作用;

self.myList.sortInPlace({ $0.countryName < $1.countryName })

有没有人知道如何根据上面的代码对数组进行排序?

1 个答案:

答案 0 :(得分:0)

您可以使用-sortUsingComparator:对这样的数组进行排序,并将块传递给它。该块将获取您要比较的两个对象并返回NSComparisonResult,这是您对两者的比较。您可以提供使用countryName的块。

您也可以使用-sortUsingDescriptors:并传入NSSortDescriptor来查看countryName字段。