如何将NSPredicate与函数配合使用?
因此,例如,我有一个日期和此功能:

let date= NSDate()
func isSameDays(date1:NSDate?, _ date2:NSDate?) -> Bool { //Code }

然后我有一个具有date属性的对象数组:
let arr = [o1, o2, o3] that i want to filter

如何使用NSPredicate过滤函数?
isSameDays(object.date, date)?

在这里,我不知道如何将此功能应用于NSPredicate。我尝试了一个块,但我不确定如何做到这一点。
请注意,我最终希望使用isSameDays使用NSPredicate。

我想将具有这3个约束的谓词传递给getObjects。
let p1 = NSPredicate(format: "user == %@", argumentArray: [user])
let p2 = ...?
let finalP = NSCompoundPredicate(andPredicateWithSubpredicates: [p1, p2])

    let visits = database.getObjects(Visit)
        .filter { visit -> Bool in
            return (
                statuses.contains(visit.visitStatus)
                    && isSameDays(visit.dateVisit, date)
                    && visit.user == user
            )
        }

最佳答案

根据https://realm.io/docs/swift/latest/#filtering,领域
支持有限的谓词列表和基于函数的谓词
不在该列表上。

要从某天检索对象,例如

NSPredicate(format: "date >= %@ && date < %@", startDate, endDate)

应该可以正常工作,其中startDateendDate被计算为
那天的开始和第二天的开始。

关于ios - NSPredicate函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34529722/

10-13 09:30