| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- scrollview
- SWIFT
- swift documentation
- UITextView
- collectionview
- 리팩토링
- swiftUI
- combine
- Clean Code
- 클린 코드
- 리펙토링
- clean architecture
- UICollectionView
- RxCocoa
- HIG
- map
- Xcode
- uiscrollview
- MVVM
- uitableview
- rxswift
- Protocol
- Refactoring
- 애니메이션
- ios
- Human interface guide
- Observable
- tableView
- 클로드코드
- 스위프트
- Today
- Total
목록Opaque Type (3)
김종권의 iOS 앱 개발 알아가기
generic과 opaque type 개념generic은 타입의 유연성을 제공하여 사용하는쪽에서 타입을 정하게끔하는 방법ex) generic을 사용하는 가장 대표적인 예제 - Stack 구현struct Stack { private var elements: [Element] = [] mutating func push(_ element: Element) { elements.append(element) } mutating func pop() -> Element? { elements.popLast() } func peek() -> Element? { elements.last } func isEmpty()..
Type Erasure 알기 전 알아야할것 Type Erasure를 먼저 살펴보기 전에, 왜 Type Erasure와 같은 기능이 나왔는지 이해하기 위해 아래처럼 확장성 있는 기법들을 알아보기 사전 지식1) 클라이언트 코드 쪽에서 유연한 프로그래밍 (= 추상화) * 클라이언트 코드: 모듈, 함수, 메소드 등 이 것을 사용하는 코드 부분을 의미 대표적인 방법 - Generics func compare(param1: T, param2: T) -> Bool { param1 T { 10 // Cannot convert return expression of type 'Int' to return type 'T' ..
Opaque Type Method가 있을 때 외부에서는 protocol을 준수한 구현체의 반환타입을 모르게끔 설정하는 방법 함수의 반환 타입으로 고정 (concrete) 타입 을 제공하는 대신, 반환 값을 자신이 지원하는 프로토콜로 설명 프로토콜 타입인 값을 반환하는 것과는 달리, 불투명 타입은 타입 정체성 (type identity) 을 보존 반환 타입 앞에 some 키워드 기입 ex) some을 사용하지 않으면 컴파일 에러 발생되는 케이스1 // Error: Protocol 'Collection' can only be used as a generic constraint because it has Self or associated type requirements func someList() -> Col..