Swift对数组优先级排序的陷阱

startPostion是数组对象的一个属性, 是一个结构体. 如果直接使用会报错.

意思大概是说明, 你自定义的类, 找不到这个属性的KVC. 然后我想去实现KVC. 最后还是放弃.
用了一个折中的办法, 就是KVC这个属性的自身, 然后在进行比较.

参考文献: Sorting without NSArray controller, Max的iOS心得筆記

 this class is not key value coding-compliant for the key startPostion.
 var sort1 = NSSortDescriptor(key: "startPostion", ascending: YES) { (a, b) -> NSComparisonResult in
            if a.x < b.x {
                return .OrderedAscending
            }else {
                return .OrderedDescending
            }
        }
var sort1 = NSSortDescriptor(key: "self", ascending: YES) { (a, b) -> NSComparisonResult in
            let c = a as! customObject
            let e = b as! customObject
            if c.startPostion.x < e.startPostion.x {
                return .OrderedAscending
            }else {
                return .OrderedDescending
            }
        }

你可能感兴趣的:(Swift对数组优先级排序的陷阱)