import SwiftUI
struct Family: Identifiable {
var id = UUID()
var name: String
}
struct FamilyRow: View{
var family: Family
var body: some View{
Text(“Family: (family.name)”)
}
}
struct ContentView: View {
var body: some View {
let first = Family(name: “YE”)
let second = Family(name: “JH”)
let third = Family(name: “MJ”)
let families = [first, second, third]
return List(families){ family in
FamilyRow(family: family)
}//List
}
}
위의 볼드체로 된 FamilyRow(family: family)에서 두번째 family는 정확히 무엇을 받는 것인지 설명 부탁드립니다. 기본적인 문법 사항인데… 정확하게 이해가 필요할 듯해서요.
import SwiftUI
struct Family: Identifiable {
var id = UUID()
var name: String
}
struct FamilyRow: View{
var family: Family
var body: some View{
Text("Family: (family.name)")
}
}
struct ContentView: View {
var body: some View {
let first = Family(name: "YE")
let second = Family(name: "JH")
let third = Family(name: "MJ")
let families = [first, second, third]
return List(families){ family in
FamilyRow(family: family)
}//List
}
}
인덴트 넣은 질문 코드를 추가합니다.
질문하신 두번째 family는 List 초기화 함수의 매개변수로 넘어가는 trailing closure 안에서 쓰이는 name 인데요,
List를 families 로 만들면서 그 안에 들어갈 FamilyRow의 내용을 채우기 위한 개별 family 인스턴스를 받아오는 역할을 합니다.
아마 연습삼아 만드는 중이라 그럴 것으로 예상하지만, SwiftUI 의 구조(MVVM)상 ContentView 안에서 Family 인스턴스를 생성하는 건 바람직하지 않아 보입니다.
참고할 수 있는 간단한 구조는 아래 답글에…
import SwiftUI
struct Family: Identifiable {
var id = UUID()
var name: String
}
struct FamilyRow: View{
var family: Family
var body: some View{
Text("Family: \(family.name)")
}
}
//Dummy Data
let families : [Family] =
[
Family(name: "YE"),
Family(name: "JH"),
Family(name: "MJ")
]
struct ContentView: View {
var body: some View {
//List 생성
List(families, id: \.id) { family in
FamilyRow(family: family)
}
}
}
이와 같은 방식으로 dummy data를 생성하고 List를 만드는 것이 좋을 것 같습니다.
https://developer.apple.com/tutorials/swiftui
swiftui tutorial이 잘 되어있으니 처음부터 끝까지 따라 만들어보는 것 추천드려요!
좋아요 1