반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
How to fix “Cannot assign to property: ‘self’ is immutable”
SwiftUI의 뷰는 구조체가 되야 하며, 기본적으로 변경할수가 없다는 것을 의미합니다. 우리가 만든 코드라면 Swift에게 값을 변경할 것이라고 말하기 위해 mutation를 사용해서 메소드를 표시할 수 있지만, SwiftUI에서는 계산된(computed) 프로퍼티를 사용하기 때문에, 그렇게 할 수가 없습니다.
프로그램이 실행되는 동안에 프로퍼티의 값을 변경하려는 경우, 다음과 같이 @State를 사용해서 표시해야 합니다:
@State private var runCount = 0
참조 타입이나 여러 뷰에서 공유되는 값 처럼, 더 복잡한 프로퍼티의 경우에, 대신 @ObservedObject나 @EnvironmentObject를 사용해야 합니다.
반응형