core-data - 在 NSPredicate 中绑定 var - SwiftUI
问题描述
我正在尝试在我的 Codre Data 过滤器中编写一个动态过滤器,如下所示(使用 SwiftUI):
@State var NumberOfRooms: Int
init(NumberOfRooms: Int) {
self.NumberOfRooms = NumberOfRooms
}
@FetchRequest(entity: Listing.entity(),sortDescriptors:[NSSortDescriptor(keyPath: \Listing.publishdate, ascending: false),],predicate: NSPredicate(format: "category == %@ AND rooms ", "House", "\($NumberOfRooms)"))
在视图中,我想像这样修改变量的值:
Text("2")
.onTapGesture {
self.NumberOfRooms = 2
}
我在 NSPredicate 收到错误消息:
不能在属性初始化程序中使用实例成员“$NumberOfRooms”;属性初始化程序在“自我”可用之前运行
基本上我想动态组合谓词。任何帮助都深表感谢。
解决方案
像这样在 init 中初始化您的请求。
var fetchRequest: FetchRequest<Listing>
@State var NumberOfRooms: Int = 10
init(NumberOfRooms: Int) {
fetchRequest = FetchRequest<BlogIdea>(entity: Listing.entity(),sortDescriptors:[],predicate: NSPredicate(format: "category == %@ AND rooms ", "House", "\(NumberOfRooms)"))
self.NumberOfRooms = NumberOfRooms
}
推荐阅读
- pandas - 如果不完全重复,则以不同颜色突出显示单元格
- google-chrome - 从 Visual Basic 关闭 chrome 配置文件
- javascript - 无法从联系表单向 Firebase 提交数据
- android - 如何更改 Android EditText 视图上 blob 的颜色?
- python - 尝试使用 python-ldap ldifparser 解析 ldif 文件
- typescript - 重载签名不兼容函数实现没有意义
- javascript - 如何使 Chrome 92 从不同子域上打开的 iframe 显示 alert()、prompt() 和 confirm()
- python - 我收到 ERROR: AttributeError at /customer/5/ type object 'Customer' has no attribute 'orderitem_set'
- python - 如何在 KivyMD 的 .kv 文件中使用 kivy 中的数据表?
- php - 用于编辑和添加送货地址的 Woocommerce 简码