【发布时间】:2019-09-19 21:18:13
【问题描述】:
我正在按照我在网上看到的每个指南将托管对象引入到带有环境的 SwiftUI 场景中,然后在场景中运行 @FetchRequest,这一切都很好。
我可以使用该结果来填充选择器的值
这就是我所拥有的
CoreData 对象
public class CD_LookupData: NSManagedObject,Identifiable {}
extension CD_LookupData {
@nonobjc public class func fetchRequest() -> NSFetchRequest<CD_LookupData> {
return NSFetchRequest<CD_LookupData>(entityName: "CD_LookupData")
}
@NSManaged public var lookluptable: String?
@NSManaged public var primarykeyid: String?
@NSManaged public var value: String?
}
SwiftUI 视图
struct LabledSelectBoxCD: View {
var label: String
var lookupdata: FetchedResults<CD_LookupData>
@Binding var value: Int
var body: some View
{
VStack(alignment: .leading)
{
Picker(selection: $value, label: Text(""))
{
ForEach(lookupdata, id: \.primarykeyid)
{ data in
Text(data.value ?? "Unknown")
}
}
}
}
}
它可以很好地使用值填充选择器,但我的默认值永远不会起作用,并且没有保存选择的值。
如果我只用一个字符串数组尝试相同的视图,它就可以完美地工作。
关于如何让它使用 primarykeyid 的值作为选择器的值的任何想法?
更新:
@Binding var value: String
和
Text(data.value ?? "Unknown").tag(data.primarykeyid)
不要做任何改变
【问题讨论】:
标签: ios core-data uipickerview swiftui