【发布时间】:2017-08-10 10:11:33
【问题描述】:
我目前正在将我的应用从 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 的使用。
现在在 Swift 3 中过滤集合的首选方法是什么?我正在考虑使用 NSPredicate,但重写此函数以使用它可能非常困难/看起来很复杂。
谢谢
【问题讨论】:
-
您要过滤的
category.sections[indexPath.section].exercises的类型是什么? -
List
这是一个领域对象。下面用我的 solution回答。