SwiftUI에서 부모뷰가 자식뷰의 설정값을 감지할 수 있는 방법 중 하나로, PreferenceKey가 있어요. 오늘은 PreferenceKey protocol에 대한 개요와 함께 실제 사용 예시를 알아보도록 하겠습니다. iOS SwiftUI, PreferenceKey protocol은 무엇인가?PreferenceKey에 대한 Quick Help 정보를 먼저 보겠습니다. 요약 정보는 View에 의해 생산되는 값 이라고 합니다. protocol로 정의가 되어있고, PreferenceKey를 채택해서 사용하려면 몇가지 구현이 필요합니다. PreferenceKey를 사용하면, 하위뷰에서 preference viewModifier를 통해 preferenceKey 값을 수정하면, 그 값을 부모 뷰에서 감지할 ..
iOS개발에 사용되는 swift는 class의 경우 상속이 가능합니다. 하지만 상속은 단일상속이 가능하지요. 그리고 struct의 경우, 이러한 상속이 불가능하죠. protocol은 class와 달리 다수의 프로토콜을 함께 채택하며 사용이 가능합니다. 또한 struct도 protocol을 채택할 수 있지요. 이렇게 다양한 프로토콜을 준수하도록 할 수 있는 개념을 protocol composition, 프로토콜 조합 이라고 한다고 합니다. 오늘은 protocol composition(프로토콜 조합) 개념을 사용하는 예시를 코드를 보며 몇가지 알아보도록 하겠습니다. Protocol Composition(프로토콜 조합) 개념 코드로 알아보기 먼저, Lecture라는 구조체를 하나 정의했습니다. struct 는..
Protocol Type, Opaque Type 모두 얼핏 생각하면 Protocol Type은 해당 프로토콜을 채택한 타입을, Opaque Type도 해당 타입을 conform하는 세부타입을 외부에 노출되지 않게 해주는 동일 역할을 할 것으로 보여집니다. 하지만, 이 둘이 동일하다면 Opaque Type이라는 다른 명칭으로 개념이 나오지 않았을텐데요. Opaque Type은 Protocol Type과 달리, 보다 강력한 타입 보장을 하며, 타입 entity를 보존한다고 합니다. 이 특징으로인해 swift가 해당 Opaque 타입의 세부 타입을 추론할 수 있게 해준다고 하며, 일반 Protocol Type과 차이점을 갖게 됩니다. 이러한 Opaque Type, 불투명타입의 장점을 기본 Protocol ty..
Protocol, Identifiable 프로토콜, Identifiable iOS의 swift 프로토콜 중 Identifiable이 있습니다. 안정적 신원을 가진 개체 값을 잡고 있는 인스턴스 타입을 정의할때 채택하여 사용하는 프로토콜이라고 합니다. Identifiable은 Combine, SwiftUI 프레임워크가 탄생한 iOS13 이후부터 사용이 가능한 프로토콜이며, Xcode 11.0버전 이상에서 사용이 가능합니다. Identifiable 프로토콜의 일부 구현부를 보겠습니다. 먼저 사용가능한 개발환경을 @available annotation으로 정의하고 있고, 이어서 Identifiable이 protocol로 정의되어 있습니다. 1359 line) 인스턴스와 관련한 개체의 독립적 신원을 표현하는 I..
- Total
- Today
- Yesterday
- 김프매매
- swift언어
- Collection
- swift string
- SwiftUI
- CoreML
- 알고리즘
- ios
- 백준swift
- swift reduce
- swift 기초
- 컬렉션
- 백준알고리즘
- swift문제
- swift 문자열
- 자연어처리
- uikit
- 프로그래머스
- createML
- Swift 알고리즘
- 프로토콜
- 스위프트
- 알고리즘문제
- 부스트코스
- 개발자문서
- swift
- Protocol
- 프로그래머스swift
- swift알고리즘
- publisher
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |