"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 更改为本地对应项。
所以我似乎无法使用内置排序功能的 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 更改为本地对应项。