首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PFObject阵列排序

PFObject阵列排序
EN

Stack Overflow用户
提问于 2015-11-22 20:00:31
回答 3查看 555关注 0票数 0

我使用的是Parse,我有一个名为“PFObjects”的scorecardData数组。每个PFObject都有一个Int类型的“得分”属性。我试图按照“得分”对数组进行排序,但我得到了以下错误:“二进制运算符'<‘不能应用于两个'AnyObject?’操作数”。我不知道我在这里做错了什么。我还试着将objectForKey(“得分”)转换为!但它不让我这么做。有什么建议吗?提前谢谢。

代码语言:javascript
复制
    var scorecardData = [PFObject]()

    scorecardData.sortInPlace({$0.objectForKey("score") < $1.objectForKey("score")})
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-22 21:09:08

您将scorecardData变量声明为PFObject数组。为什么要尝试使用保留的PFObject属性访问objectForKey:?不管怎样,我不是解析专家。但是,如果将数组声明为[PFObject],则可以使用:

代码语言:javascript
复制
scorecardData.sortInPlace({$0.score < $1.score})

但是,除非您将PFObject子类用于更本地的面向对象的类结构,否则这是行不通的。如果您这样做,请记住也要指定:

代码语言:javascript
复制
var scorecardData = [YOUR_NEW_CLASS]()

我强烈建议对PFObject进行子类化,以利用所有快速类型安全的优点。

但是,如果要保留数据结构,可以使用:

代码语言:javascript
复制
scorecardData.sortInPlace({($0["score"] as! Int) < ($1["score"] as! Int)})

记住,这是危险的,并在未来避免它。

票数 2
EN

Stack Overflow用户

发布于 2017-03-22 09:53:33

如果你想对你的PFOject数组进行排序.你能做到的

代码语言:javascript
复制
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
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-11-22 21:59:29

你试过这样做吗?

代码语言:javascript
复制
var query = PFQuery(className:"ScoreCard")

    // Sorts the results in ascending order by the score field
query.orderByDescending("score")

query.findObjectsInBackgroundWithBlock {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33859497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档