* Swift Tutorial3 를 보다가 작성합니다.
Swift에서 {}는 클로저를 나타냅니다. 클로저는 일종의 익명함수로 볼 수 있습니다.
변수나 상수에 클로저를 할당할 수 있고, 클로저는 코드 블록을 캡슐화해서 나중에 호출하거나 실행할 수 있도록 합니다.
Swift Tutorial3에 다음과 같은 코드가 있습니다.
import SwiftUI
struct LandmarkList: View {
@State private var showFavoritesOnly = false
var filteredLandmarks: [Landmark] {
landmarks.filter { landmark in
(!showFavoritesOnly || landmark.isFavorite)
}
}
var body: some View {
NavigationSplitView {
List(landmarks) { landmark in
NavigationLink {
LandmarkDetail(landmark: landmark)
} label: {
LandmarkRow(landmark: landmark)
}
}
.navigationTitle("Landmarks")
} detail: {
Text("Select a Landmark")
}
}
}
#Preview {
LandmarkList()
}
아직 swift 초보다 보니까 저 filteredLandmarks는 배열인데 뒤에꺼는 뭐지 하는 생각이 들었습니다.
저 속성은 계산된 속성입니다.
계산된 속성은 값을 저장하지 않고, 대신에 호출될 때마다 특정 코드를 실행해서 값을 반환합니다.
그러니까
filteredLandmarks는 호출될 때마다
showFavoritesOnly가 false이거나(전체보기)
해당 landmark가 즐겨찾기인 경우에,
해당 landmark를 필터링된 결과에 포함시킵니다.
'Ios > Swift UI' 카테고리의 다른 글
이것저것 Swift 메모용(찾아갈만한게 있을 수도 있고 없을 수도 있어요) (3) | 2024.07.23 |
---|---|
@Environment로 커스템 데이터모델을 환경에서 가져오기 (4) | 2024.07.22 |
@Binding 과 .constant에 대해서 알아봅시다 (0) | 2024.07.22 |
키 패스 KeyPath 에 대해 알아봅시다 (2) | 2024.07.19 |
@Observable, @ObservedObject 를 알아봅시다 (0) | 2024.07.19 |