core-data - SwiftUI 读取已选择 UUID 的实体数据
问题描述
在研究和尝试了 2 天后,我没有找到任何解决方案。我希望你能给我一个提示。我还是初级水平。
目标:选择一个 bean 后(选择器工作正常)我想将选择的 bean.roastStyle 存储到 CurrentBeanStyle (我用“dark”初始化)。换句话说,我得到了实体的 UUID (chooseBeanID),并想读出实体的其余属性以将其存储到 Current...
import SwiftUI
import Combine
struct Dial_In: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Bean.entity(), sortDescriptors: []) var beans: FetchedResults<Bean>
@State var chooseBeanID: UUID? = nil
@State var CurrentBeanStyle = "dark"
var body: some View {
NavigationView {
VStack{
Form {
Section {
Picker("Bean", selection: $chooseBeanID) {
ForEach(beans, id: \.id) { bean in
HStack {
Text(bean.roaster ?? "unknown")
Text(bean.name ?? "unknown")
Text(bean.roastStyle ?? "unknown")
}.tag(bean.id)
}
}
.onReceive([self.chooseBeanID].publisher.first()) { (value) in
if self.chooseBeanID == nil {
}
else {
self.SaveCurrentBeanData()
}
}
}
}
}
}.navigationBarTitle("Dial in", displayMode: .inline)
}
func SaveCurrentBeanData() {
// Code Hier ............
}
}
解决方案
只需将 UUID 不存储在 State 中,而是将选定的Bean
对象存储在 State 中,这样就更容易了。
@State var chooseBeanID: Bean?
然后对于Picker
with Proxy Binding
Picker("Bean", selection: Binding<Bean?>(
get: {
self.chooseBeanID
},
set: {
self.chooseBeanID = $0
print($0)
//here you can get your current Bean object with $0 or after setting it to chooseBeanID.
//You might call your function with that object or do operations here
}
)) {
ForEach(beans, id: \.self) { bean in
HStack {
Text(bean.roaster ?? "unknown")
Text(bean.name ?? "unknown")
Text(bean.roastStyle ?? "unknown")
}.tag(bean as Bean?)
}
}
然后您可以跟踪选定的 Bean 并访问所有变量。您可以为选择执行代理绑定,然后您可以对新选定的项目运行任何操作。
推荐阅读
- swift - iOS:@testable 在框架中看不到内部类
- google-cloud-datastore - Google DataStore - createdAt 属性和更新
- c# - Fluent Validation 未按要求进行验证
- machine-learning - 提高 LSTM 在文本分类上的性能(3 类问题)
- mysql - MIN() 日期时间记录检索 - MySQL
- c# - 出于序列化目的,我应该使用什么作为稳定且安全的唯一对象标识符?
- c# - 使用分层生命周期管理器注册 ApplicationDbContext
- excel - 为什么当我创建新的 UDF 并将其分配给单元格时,Excel 会在相同和不同的工作簿中重新执行函数?
- database - 我想要一个包含视频的网络,我应该将它们存储在数据库中还是将它放在每个视频的前端?
- php - 在 Woocommerce MINI CART 中显示小计、税收、总计