按属性对关系中的对象进行排序?

时间:2016-12-20 16:17:07

标签: swift sorting

我正在尝试创建一个排序函数,它将通过dateCreated属性通过与父对象的关系来访问对象。希望结果将为我提供一组对象,我可以加载到我的tableview中。

我知道不需要使用sort函数,并将其NSDate属性转换为时间戳,以便能够进行比较,因为它们不是简单的日期属性。

但是我不确定如何开始访问这些属性。我根据自己的阅读情况对代码进行了一次尝试,但它的抛出错误让我无法解决问题。

        if let userExercise = selectedRoutine?.userexercises?.allObjects[indexPath.row] {

        let dateSortedUserExercises = userExercise.sorted (by: { (left, right) -> Bool in
            userExercise.dateCreated!.timeIntervalSince1970 > userExercise.dateCreated!.timeIntervalSince1970
        })
        print("SORTED EXERCISES \(dateSortedUserExercises)")

我得到了:

  

“任何”类型的值没有成员'已排序'

然后如果按照swift的建议我做(userExercise as AnyObject),我得

  

'AnyObject'类型的值没有成员'sorted'

我相信我要么在这里采取错误的路线,要么以错误的方式访问错误的东西?感谢您的帮助!

更新:添加了下面提到的截图

code image

1 个答案:

答案 0 :(得分:0)

排序时需要引用闭包中的两个对象。

$(this).css("transform")

或以更简洁的格式:

let dateSortedUserExercises = userExercise.sorted { left, right in
        left.dateCreated!.timeIntervalSince1970 > right.dateCreated!.timeIntervalSince1970
    }

其中$ 0.0是左侧,$ 0.1是右侧。