#swift #swiftui #picker
Вопрос:
У меня есть средство выбора внутри формы. Ранее он правильно выбирал элементы, однако после изменения кода для устранения другой проблемы он больше не работает. Элементы, которые использует средство выбора, извлекаются из coredata. Как я могу исправить эту проблему?
@FetchRequest(sortDescriptors: [])
var sources: FetchedResults<Source>
@State private var selectedSource = 0
Вот код, который я использую для выбора.
Picker(selection: $selectedSource, label: Text("Source")) {
ForEach(sources, id: .self) { source in
Text(source.name!)
.tag(source)
}
}
Вот ссылка на видео этого вопроса. Видео
Ответ №1:
Тип , который вы указываете в Picker(selection:)
(который в настоящее Int
время— selectedSource
), должен совпадать с типом, который вы указываете в tag()
, который в настоящее Source
время .
Вы могли бы, например, использовать идентификатор Source
(я предполагаю, что он у вас есть) в качестве своего selectedSource
, а затем использовать те же идентификаторы в своем tag()
Комментарии:
1. Спасибо! Я использовал
@State private var selectedSource: Source?
иText(source.name!).tag(source as Source?)
для того, чтобы заставить его работать.