使用函数使用Swift 3过滤领域对象

时间:2017-08-10 10:11:34

标签: swift swift3 realm

我目前正在将我的应用程序从Swift 2升级到Swift 3,并试图弄清楚谓词如何与Realm一起使用。

我有这个简单的代码:

let exercises = category.sections[indexPath.section].exercises.filter { (exercise) in
    self.isVisible(exercise)
}

let exercise = exercises[indexPath.row]

其中isVisible函数是:

func isVisible(_ exercise: RepositoryExercise) -> Bool {
    let firstSet = exercise.sets[0]

    if (exercise.sets.count > 1) {
        return true
    } else {
        if (firstSet.seconds > 0 || firstSet.reps > 0) {
            return true
        }
    }

    return exercise.visible
}

我的问题开始于使用LazyFilterBidirectionalCollection。

enter image description here

现在在Swift 3中过滤集合的首选方法是什么?我正在考虑使用NSPredicate,但重写此功能以使用它可能会非常困难/看起来很复杂。

由于

1 个答案:

答案 0 :(得分:0)

https://github.com/realm/realm-cocoa/issues/1046

之后不久发现此主题

将我的列表包含在Array()中,以便对其进行过滤。

enter image description here