"Sorted(by: )" 不返回数组/如何对 swift 中的对象数组进行排序

"Sorted(by: )" not returning an Array / how to sort an Array of PFObjects in swift

所以我似乎无法使用内置排序功能的 swifts 进行排序。

我有一个 PFObject 数组,如果您不知道这个问题的范围是什么,最好将它想象成一个哈希表数组。

我正在尝试使用此方法对数组进行排序

self.courseArray = self.courseArray.sorted(by: sortClasses)

并且 sortClasses 看起来像:

    func sortClasses(_ x: Any, _ y:Any) ->Bool{
    return ((x as! PFObject).object(forKey: "priority") as! Int) < ((y as! PFObject).object(forKey:"priority") as! Int)
}

其中键优先级会给出一个 Int。

但是,当我执行此操作时出现此错误

Cannot assign value of type '[NSFastEnumerationIterator.Element]' to type 'NSMutableArray'

有什么建议吗?

只需使用原生 Swift Array 而不是 NSMutableArray

声明 courseArray

[PFObject]() 

并使用密钥订阅

func sortClasses(_ x: Any, _ y:Any) -> Bool {
    return (x as! PFObject)["priority"] as! Int < (y as! PFObject)["priority"] as! Int
}

您可以将与 NSMutableArray 相关的其他 API 更改为本地对应项。