728x90
SMALL
@Observable은 Swift의 SwiftData(또는 Observation 프레임워크)에서 도입된 새로운 속성 래퍼로,
클래스가 관찰 가능(observable)하도록 만들어주는 역할
즉, 해당 클래스의 프로퍼티가 바뀌면 자동으로 뷰에 반영될 수 있게 해주는 도구
✅ @Observable의 의미
@Observable
class ModelData {
var landmarks: [Landmark] = load("landmarkData.json")
}
이 코드는 ModelData 클래스가 SwiftUI 뷰에서 관찰될 수 있게 한다는 뜻
즉, landmarks 배열이 변경되면 이를 사용하는 SwiftUI 뷰가 자동으로 업데이트
🔄 @Observable과 @ObservedObject, @Published의 차이
기존에는 다음과 같이 작성
class ModelData: ObservableObject {
@Published var landmarks: [Landmark] = ...
}
하지만 이제 Swift 5.9 이상과 함께 등장한 새로운 Observation 시스템에서는:
@Observable
class ModelData {
var landmarks: [Landmark] = ...
}
✅ 더 간결하게 작성할 수 있습니다.
✅ @Published를 쓰지 않아도 속성 변경이 감지됩니다.
✅ 컴파일러가 자동으로 감시 코드를 생성해줍니다.
728x90
LIST
'SwiftUI' 카테고리의 다른 글
| @Binding 은 뭐야? (0) | 2025.06.05 |
|---|---|
| @Environment(ModelData.self) var modelData 에서 @Environment는 뭐야? (0) | 2025.06.05 |
| @State란? (0) | 2025.06.05 |
| Hashable, Codable 뭐여? (0) | 2025.06.04 |
| Spacer() (0) | 2024.12.22 |