我在传递查询作为函数参数时遇到了一个问题。虽然查询的类型与直接在类中使用时相同,(当我复制粘贴代码时,它工作),但它不会工作-返回一个基本的奇怪错误:
这是我访问过滤器的地方:Cannot convert value of type 'Bool' to closure result type 'Query<Bool>'
.
import SwiftUI
import RealmSwift
struct PostFeed: View {
@ObservedResults(Post.self) private var posts
init(where filter: ((Query<Post>) -> Query<Bool>)?) {
self._posts = .init(Post.self, where: filter )
}
}
这就是我通过过滤器的地方:
PostFeed { $0.posterId == id } // <-- Error appears here
...
如果删除动态查询参数并在视图中输入相同的查询,则该查询有效。否则,如果将其结构化为:
init(_ id: String) {
self.id = id
self._posts = .init(Post.self, where: {$0.posterId == id} )
}
以及
PostFeed(id)
我想让我的例子1起作用。有什么建议吗?
2条答案
按热度按时间az31mfrm1#
将参数类型更改为
z31licg02#
在让同事检查这个问题后,我们发现代码工作正常。
命令+ K(清理构建文件夹)修复了这个问题。经典的XCode移动。