티스토리 뷰
728x90
반응형
Swift 5.6
@frozen struct GeometryReader<Content> where Content : View
열거형의 경우 또는 구조체의 저장된 인스턴스 프로퍼티를 추가, 제거, 재정렬하여 선언을 바꿀 수 없다.
frozen 으로 표시하면 추가적인 최적화를 진행할 수 있기 떄문에 라이브러리의 향후 버전을 제한적으로만 변경할 수 있도록 하지만 이와 같은 성능을 얻기때문에 flexibility 를 포기할 수 있다고 합니다.
frozen 열거형에 대한 switch 문은 default case 를 필요로 하지 않습니다. 해당 열거형 switch 문에서 default, @unknown 기본 케이스를 포함하면 해당 코드가 실행되지 않기 때문에 warning 이 발생합니다.
Attributes - The Swift Programming Language (Swift 5.6)
라이브러리에 많이 사용되기때문에 위와 같은 default 문을 사용하지 않는 점이 코드의 가독성을 올려주는 것이 일반적인 장점이다. 그래서 라이브러리를 만드는 과정이 아니라면 구조체에서는 잘 사용되지 않음을 볼 수 있었다.(SwiftUI GeometryReader 에서 사용됨.)
frozen 구조체의 프로퍼티는 프로퍼티 관찰자를 가질 수 없다.
nonfrozen enumeration 은 앱을 컴파일하고, 출시한 후에도 미래에 새로운 enumeration cases 를 얻을 수 있는 special kind 라고 한다.
(그만큼 경우에 따라는 디폴트라는 것 같다.)
728x90
반응형
'iOS' 카테고리의 다른 글
WWDC22) Hello Swift Charts (0) | 2022.07.05 |
---|---|
iOS) asnyc/await 사용하여 이미지의 thumbnail 비동기적으로 만들기 (0) | 2022.06.23 |
iOS) MainActor 사용해서 main queue 에서 실행시키기 (0) | 2022.06.03 |
iOS) Actor 를 활용한 이미지 캐싱처리 - WWDC21 Protect mutable state with Swift actors (0) | 2022.06.03 |
iOS) async/await 와 URLSession 사용하기(2) - abstraction layer 구축해보기 (2) | 2022.06.03 |
댓글
TAG
- MOYA
- containerBackground
- WWDC
- WWDC22
- Swift
- 서버통신
- WidgetKit
- Notification
- urlsession
- RxCocoa
- 2022 KAKAO TECH INTERNSHIP
- CloneCoding
- OpenSourceLibrary
- Objective-C
- Algorithm
- Protocol
- IOS
- YPImagePicker
- MVVM
- Firebase
- configurable widget
- github
- Widget
- SwiftUI
- UserDefaults
- projectsetting
- watchOS
- APNS
- rxswift
- async/await
최근에 올라온 글
최근에 달린 댓글
글 보관함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
링크
- Total
- Today
- Yesterday