Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- combine
- ios
- ribs
- 애니메이션
- UICollectionView
- SWIFT
- HIG
- swift documentation
- 클린 코드
- clean architecture
- MVVM
- Xcode
- swiftUI
- uitableview
- map
- Clean Code
- rxswift
- collectionview
- uiscrollview
- 스위프트
- Refactoring
- UITextView
- Protocol
- Observable
- RxCocoa
- tableView
- 리펙터링
- 리팩토링
- 리펙토링
- Human interface guide
Archives
- Today
- Total
목록any (2)
김종권의 iOS 앱 개발 알아가기
[iOS - swift] any vs some 키워드 (dynamic dispatch, static dispatch, type erase)
any와 some 키워드 any와 some키워드는 type erase 방법 type erase: 코드의 추상화를 위해서 구체적인 타입을 지우는 것 3가지 메소드의 차이점? 3가지 모두 런타임에 타입이 결정되므로 dynamic dispatch로 동작 f2는 any를 붙여줌으로써 프로토콜을 사용하면 dynamic dispatch가 될것이라는 것을 명시적으로 표현했고 Swift6.0부터는 any키워드를 붙이지 않으면 컴파일 에러가 나게 변경 예정 (참고) f3도 원래는 사용하던 시점이 있었지만 any가 등장하면서 some을 any로 써도 무방하게끔 변경됨 (참고) protocol P {} func f1(p: P) { } func f2(p: any P) { } func f3(p: some P) { } any와 ..
iOS 응용 (swift)
2024. 2. 2. 00:32
[iOS - swift] Type Erasure 이해하기 (any, some, unboxing 개념, 유연한 프로그래밍)
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' ..
iOS 응용 (swift)
2023. 2. 24. 22:01