core-data - 如何用 ObservedObject 和 NSManagedObject 制作 Picker?
问题描述
在我看来,我定义了一些 ObservedObjects。ShoppingItems 和 Packages 是 NSManagedObject 的子类。
@ObservedObject var shoppingListData: ShoppingListData
@ObservedObject var shoppingItem: ShoppingItems
@ObservedObject var package: Packages
init(thisData: ShoppingListData, formShoppingItem: ShoppingItems, formPackage: Packages?) {
shoppingListData = thisData
shoppingItem = formShoppingItem
if let fp = formPackage {
package = fp
} else if let fp = formShoppingItem.minStorePackage {
package = fp
} else {
let newPackage = Packages(context: thisData.dataStack.moc)
newPackage.myShoppingItem = formShoppingItem
newPackage.myStore = thisData.dataStack.currentReceipt.myStore!
package = newPackage
}
}
在我的身体里,我有一个选择器。
Picker(selection: $package, label: Text("Store Packages")) {
ForEach(shoppingItem.storePackages, id: \.uuidKey) { pkg in
Text(pkg.brandName).tag(pkg.uuidKey)
}
}
选择器将显示其他包,但它不会将包变量从旧包更改为新选择的包。在视图初始化后更改 @ObservedObject 指向的实例是否有一些 SwiftUI 限制?
解决方案
推荐阅读
- google-apps-script - 在 Google 协作平台中嵌入网络应用程序不起作用
- amazon-web-services - 更改 AWS 自定义资源的默认超时
- phpstorm - 如何在 PhpStorm 中的选项卡之间切换?
- apache-flink - 如何在纱线模式下运行 flink scala shell
- ios - 如何在 UITableview DataSource 方法中的 UIContextualAction 中添加图像
- c++ - 为什么 `operator<<` 对指向派生类型的成员不起作用?
- html - 如何使用表格在模态文本框
- android - 图书馆项目:如何覆盖属性?
- sql - SSRS 报告。在下拉参数中全选
- angular - Angular 6 通信子级 - 具有 ng 内容的父级