[Swift] @propertyWrapper 알아보기

  [Swift] @propertyWrapper 알아보기


안녕하세요 물먹고하자 입니다 :)

Swift5.1부터 추가된 기능이며, 이미 사용하고 있지만

정리차원으로 사용하고 있는 부분 공유드립니다.

바로시작!


  @propertyWrapper

SwiftUI가 추가되면서 @(Annotation) 들이 추가가 많이 되었는데, 이부분이 @propertyWrapper로 표기되어 있더라구요.


@StateObject, @State .. 등등 내부 API 클릭해보시면, @propertyWrapper로 정의되어있다.

Java를 했던 시절에도 @(Annotation)을 직접 만들어서 썼던게 있어서 이걸 활용하면, 

조금 코드가 간결하게 쓸수 있지 않을까 생각을 해서 알아보았습니다.


  적용되면 좋을것 같은부분 (UserDefault 활용부분)

지금 사용중인 프로젝트 중 사용자정보를 저장하는 부분이 있는데, 그부분에 적용을 한번 해볼까합니다!

특히 UserDefault를 사용해서 변수에 Get, Set을 만들어 저장과 불러오기를 만들어 놨습니다.

1~2개 일때는 그냥 복붙해서 쓰면 되는데, 늘어나면 감당이 안되기 시작합니다.


Objc .h 파일


Objc .m 파일 (Get, Set 활용하여 UserDefault에 저장, 불러오기 활용중)


@propertyWrapper 활용시에는 간단하게 사용가능 (뒤에 예시)

  샘플소스 



정의된 @propertyWarpper 활용부분


위에서 간단하게 한줄 예시는 먼저 보여드렸는데, 이렇게 양이 많아지면 많아질수록 눈에 보이기 편하게 코드가 바뀌어 만족합니다.


  마무리

오늘은 @propertyWarpper에 대해 알아봤습니다. 이미 도입은 2년전(?) 나오고나서 얼마 안있다가 사용은 하고 있었는데, 정리할 시간이 별로 없어서 못했었네요.

확실히 Objc언어에서는 할 수 없는부분이 Swift에서 많이 되서 소스까지도 간결해지는것 같습니다.


오늘은 이만~

즐거운 코딩되세요

끝.



댓글

이 블로그의 인기 게시물

[iOS18 Beta] WkWebView Cookies 못 가져오는 현상 (SameSite default Lax 변경)

[iOS] 앱 아이콘 동적으로 변경하기 (Dynamically Change App icon)

[iOS] 앱스토어 등록 전, 후 URL 알아보기

[iOS] 초성 검색 지원하기 (유니코드 초성분리)

[Xcode] add Simulators (시뮬레이터 추가하기)