Я слежу за каждым руководством, которое я видел в Интернете, чтобы ввести управляемый объект в сцену SwiftUI с окружающей средой, а затем запустить @FetchRequest в сцене, все это прекрасно работает.
Я могуиспользуйте этот результат для заполнения значения средства выбора
Вот что у меня есть
CoreData Object
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 View
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)
Не вносить никаких изменений