Для экземпляра, как показано в примере JSON data, я хочу сохранить объект, который имеет свойство content & video, и игнорировать тот, у которого их нет. Такие объекты, как 2-й, 3-й, имеющие только адрес и свойство ошибки, должны игнорироваться.
/ / JSON пример данных
[
{
"content": "asdhh",
"url": "dasddd",
"country": "kkjkkj",
"address": "aksjdkasjd"
},
{
"address": "aabbccdd"
},
{
"error": "error description"
}
]
Я пытаюсь использовать if video.content != nil && video.url != nil
управлять отображением VideoListRow в ForEach l oop. Но оказывается, что я не смог вызвать video.property в закрытии ForEach. Так как же я мог игнорировать нежелательные проанализированные данные и показывать только нужный объект, в этом случае был нужен только первый объект.
var body: some View {
List {
ForEach(self.model.videos) { video in
if video.content != nil && video.url != nil {
VStack(spacing: 0) {
VideoListRow(video: url)
}
}
}
}.onAppear() {
self.model.getVideoBundle()
}
}
// Изменить мой код для добавления фильтра: Незначительное изменение заключается в использовании ||
, но не &&
. Поскольку я хочу сохранить объект, который имеет только один из содержимого и URL, этот является допустимым. Только если он не включает два из них, игнорируйте его.
ForEach(
self.model.videos.filter { (video) -> Bool in
video.content != nil || video.url != nil
}
) { video in
VStack(spacing: 0) {
VideoListRow(video: url)
}
}