오늘은 Udemy강의에서 다뤘던 내용을 복습하는 차원에서 swift의 Protocol에 associatedtype을 지정하고 활용하는 방법과 associatedtype에 대한 제약을 주는 방법도 알아보겠습니다. 참고한 강의 reference는 아래 링크를 참고해주세요. https://www.udemy.com/course/swift-for-intermediate-and-advanced-ios-developers/ swift protocol, associatedtype 연관타입 정의 및 사용방법 Parser라는 protocol이 정의되어있습니다. 그리고 그 내부를 보시면 Input, Output 타입이 associatedtype으로 지정되어있습니다. 그리고 Input, Output을 사용하는 parse 라는..
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..
Protocol CaseIterable enum 열거형의 값들을 배열 컬렉션과 같이 순회할 수 있도록 해주는 프로토콜이 있습니다. 바로 CaseIterable이라는 프로토콜입니다. CaseIterable 프로토콜은 모든 case 값들에 대한 컬렉션을 제공하는 타입입니다. enum 타입에 CaseIterable 프로토콜을 채택해서 enum의 case 값들을 for in loop나 forEach 등으로 순회할 수 있습니다. 그 외 배열 컬렉션에서 사용하던 다양한 메서드 또한 사용 가능합니다. Declaration CaseIterable 선언방식 CaseIterable은 앞서 말했듯이, 프로토콜로 선언되어있습니다. CaseIterable 프로토콜과 allCases 타입 프로퍼티 enum 열거형으로 선언되어있는..
- Total
- Today
- Yesterday
- 프로그래머스
- 자연어처리
- publisher
- swift 기초
- SwiftUI
- 알고리즘
- 백준알고리즘
- 프로그래머스swift
- createML
- 김프매매
- CoreML
- 프로토콜
- ios
- swift reduce
- 백준swift
- swift언어
- swift알고리즘
- swift문제
- 부스트코스
- 컬렉션
- Collection
- 알고리즘문제
- swift
- Swift 알고리즘
- uikit
- swift 문자열
- Protocol
- swift string
- 개발자문서
- 스위프트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |