gpt4 book ai didi

swift - 如何编写 Realm Results 对象扩展

转载 作者:行者123 更新时间:2023-11-28 12:50:11 24 4
gpt4 key购买 nike

我想编写一个扩展来简化对我的 Results 对象的复杂过滤。我试过这个:

extension Results where T:MyProtocol {
func filterEnabled() -> MyProtocol {
return self.filter("type == 1").filter { $0.enabled == true }
}
}

XCode 给我这个错误:对成员“filter”的引用不明确。我认为 T:MyProtocol 约束是不够的。

我怎样才能完成我想做的事情?

最佳答案

我认为这里的问题不是通用约束,而是您在此处使用的两个 filter 方法都返回一个集合,该集合与您指定的返回类型不匹配。

同样重要的是要注意:您应用的第一个过滤器可以由 Realm 在内部优化以查询您的数据库,后者是 Swift 标准库的一部分,并在过滤之前先将所有对象拉入内存。

extension Results where T: Named {
func firstEnabled() -> Named? {
return self.filter("type == 1 && enabled == true").first
}

func filterEnabled() -> Results<T> {
return self.filter("type == 1 && enabled == true")
}
}

关于swift - 如何编写 Realm Results 对象扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com