Работая с SwiftUI, я пару раз сталкивался с PreviewProvider
и пока не понял, как правильно обращаться с этой функцией.
Как я могу предотвратить проблемы в этом случае, потому что прямо сейчас, очевидно, говорится:
Использование неразрешенного идентификатора 'ShelterDetailedView (shelter:)'
shelter
внутри ShelterDetailedView
пересылается родителем представления. Я получаю эти данные из базы данных.
struct ShelterDetailedView: View {
var shelter: Shelter
var body: some View {
VStack(alignment: .leading, spacing: 0) {
ScrollView(.horizontal, showsIndicators: true) {
HStack {
Image(shelter.image)
.resizable()
.frame(width: UIScreen.main.bounds.width, height: 300)
Image("pacific")
.resizable()
.frame(width: UIScreen.main.bounds.width, height: 300)
}
}
HStack {
Spacer()
DetailedViewDistance(shelter: shelter)
Spacer()
}
.offset(x: 0, y: -30)
DetailedViewHeader(shelter: shelter)
Spacer()
}
}
}
struct ShelterDetailedView_Previews: PreviewProvider {
static var previews: some View {
ShelterDetailedView(shelter: ??????)
}
}
class Shelter: Identifiable {
let id: String
let title: String
let image: String
let available: Bool
let distance: Double
let gender: String?
init?(id: String, title: String, image: String, available: Bool, distance: Double, gender: String?) {
if id.isEmpty || title.isEmpty || image.isEmpty || distance < 0 {
return nil
}
self.id = id
self.title = title
self.image = image
self.available = available
self.distance = distance
self.gender = gender
}
}