PFObject 数组排序
PFObject Array Sort
我正在使用 Parse,我有一个名为 "scorecardData" 的 PFObject 数组。每个 PFObject 都有一个 Int 类型的 "score" 属性。我正在尝试按 "score" 对我的数组进行排序,但出现以下错误:"Binary operator '<' cannot be applied to two 'AnyObject?' operands"。我不确定我在这里做错了什么。我还尝试将 objectForKey("score") 转换为! Int 但它不允许我这样做。有什么建议么?提前致谢。
var scorecardData = [PFObject]()
scorecardData.sortInPlace({[=10=].objectForKey("score") < .objectForKey("score")})
您将 scorecardData
变量声明为 PFObject
的数组。您为什么尝试使用 objectForKey:
保留访问 PFObject
属性?无论如何,我不是解析专家。但是,如果您将数组声明为 [PFObject]
,则可以使用:
scorecardData.sortInPlace({[=10=].score < .score})
但这不会起作用,除非您将 PFObject 子class 用于更原生的面向对象的 class 结构。如果这样做,请记住还要指定:
var scorecardData = [YOUR_NEW_CLASS]()
我强烈建议子classing PFObject 以利用所有 swift 类型安全的好东西。
但是如果你想保留你的数据结构,你可以使用:
scorecardData.sortInPlace({([=12=]["score"] as! Int) < (["score"] as! Int)})
请记住这很危险,并在以后避免它。
你试过这样做吗?
var query = PFQuery(className:"ScoreCard")
// Sorts the results in ascending order by the score field
query.orderByDescending("score")
query.findObjectsInBackgroundWithBlock {
如果你想对你的项目数组进行排序...你可以这样做
extension Array where Element:PFObject {
func sort() -> [PFObject] {
return sort { (first, second) -> Bool in
let firstDate = first.objectForKey("time") as! NSDate//objectForKey(Constants.Parse.Fields.User.fullName) as? String
let secondDate = second.objectForKey("time") as! NSDate//objectForKey(Constants.Parse.Fields.User.fullName) as? String
return firstDate.compare(secondDate) == .OrderedAscending
}
}
}
我正在使用 Parse,我有一个名为 "scorecardData" 的 PFObject 数组。每个 PFObject 都有一个 Int 类型的 "score" 属性。我正在尝试按 "score" 对我的数组进行排序,但出现以下错误:"Binary operator '<' cannot be applied to two 'AnyObject?' operands"。我不确定我在这里做错了什么。我还尝试将 objectForKey("score") 转换为! Int 但它不允许我这样做。有什么建议么?提前致谢。
var scorecardData = [PFObject]()
scorecardData.sortInPlace({[=10=].objectForKey("score") < .objectForKey("score")})
您将 scorecardData
变量声明为 PFObject
的数组。您为什么尝试使用 objectForKey:
保留访问 PFObject
属性?无论如何,我不是解析专家。但是,如果您将数组声明为 [PFObject]
,则可以使用:
scorecardData.sortInPlace({[=10=].score < .score})
但这不会起作用,除非您将 PFObject 子class 用于更原生的面向对象的 class 结构。如果这样做,请记住还要指定:
var scorecardData = [YOUR_NEW_CLASS]()
我强烈建议子classing PFObject 以利用所有 swift 类型安全的好东西。
但是如果你想保留你的数据结构,你可以使用:
scorecardData.sortInPlace({([=12=]["score"] as! Int) < (["score"] as! Int)})
请记住这很危险,并在以后避免它。
你试过这样做吗?
var query = PFQuery(className:"ScoreCard")
// Sorts the results in ascending order by the score field
query.orderByDescending("score")
query.findObjectsInBackgroundWithBlock {
如果你想对你的项目数组进行排序...你可以这样做
extension Array where Element:PFObject {
func sort() -> [PFObject] {
return sort { (first, second) -> Bool in
let firstDate = first.objectForKey("time") as! NSDate//objectForKey(Constants.Parse.Fields.User.fullName) as? String
let secondDate = second.objectForKey("time") as! NSDate//objectForKey(Constants.Parse.Fields.User.fullName) as? String
return firstDate.compare(secondDate) == .OrderedAscending
}
}
}