반응형

 

Hacking with Swift 사이트의 강좌 번역본입니다.

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/understanding-property-wrappers-in-swift-and-swiftui]

 

Understanding property wrappers in Swift and SwiftUI

 

SwiftUI는 코드를 읽고, 쓰고 관리하기 쉽게 만들기 위해, 프로퍼티 래퍼(property wrappers)에 크게 의존하지만, 이전에 한번도 사용해본적이 없는 경우에, @ $ 기호가 어디에서 왔는지 모르는것을 용서받을 것입니다 - 그것들은 처음엔 외계인으로 보일것입니다.

 

비록 property wrappers는 Swift 5.1에서 소개된 일반적인 Swift 기능이지만, SwiftUI에서 특히나 일반적입니다 - 우리 코드에서 상용구의 양을 줄이는데 도움이 되는 것이 목적인 @Published, @ObservedObject, @EnvironmentObject, 등을 보게 될 것입니다.

 

다음 몇개의 장에서 SwiftUI의 property wrapper 각각에 대해 자세히 살펴볼것이지만, 기본사항을 요약할 가치가 있습니다.

  • 일부 property wrapper는 @State를 사용해서 구조체 내에 있는 프로퍼티들을 수정하는 것처럼, 다른것으로는 불가능한 효과를 얻을 수 있습니다. 
  • 일부 property wrapper는 특별히 다른 곳에서 추가 작업을 마무리 하는 것을 요구하고, 그 작업이 완료되지 않는 경우에, 크래쉬가 날 수도 있습니다. 예를들어, @FatchRequest는 Core Data 관리 객체 컨텍스트(context)를 environment 안에 미리 배치했을 것으로 예상합니다.
  • 한 번에 하나의 property wrapper만을 적용할 수 있으며, @ObservedObject @Binding var value = SomeClass()는 허용되지 않습니다. 
  • 일부 property wrapper들은 비슷해 보이지만(@Environment @EnvironmentObject), 이들 모두 다르고 적절하게 사용하는 것이 중요합니다.
  • 원하는 경우 자체 property wrapper를 만들 수 있지만, SwiftUI를 사용할 필요는 없습니다.

기본사항을 다루지만, 이러한 property wrappers 동작을 제대로 이해하기위해 각각 조사해볼 가치가 있습니다.

반응형
Posted by 까칠코더
,