일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios
- rxswift
- MVVM
- Protocol
- tableView
- combine
- map
- Human interface guide
- clean architecture
- 리펙토링
- SWIFT
- 애니메이션
- ribs
- Observable
- uiscrollview
- RxCocoa
- Clean Code
- 리팩토링
- 스위프트
- 리펙터링
- 클린 코드
- UICollectionView
- swiftUI
- collectionview
- Refactoring
- Xcode
- HIG
- swift documentation
- UITextView
- uitableview
- Today
- Total
목록Generics (4)
김종권의 iOS 앱 개발 알아가기
* 추상화하기 목차: https://ios-development.tistory.com/1627 프로토콜과 제네릭스 사용하는 목적 파악하기 프로토콜 사용 목적? protocol을 타입(existential type)으로하고 구현체를 assign하는 패턴으로하면 구현체의 변경할 때 유연성이 증가 구현체에는 여러 구현 코드가 섞여서 정말 사용하는쪽에서만 필요한 인터페이스만 보려면 가독성이 떨어지지만 protocol을 타입으로한다면 사용하는 쪽에서 필요한 스펙 파악이 용이 제네릭스 사용 목적 코드의 재사용성 중복 제거 포로토콜에 제네릭스 사용의 이해 프로토콜에는 associated type 키워드를 사용하여 제네릭스 사용이 가능 ex) cell타입을 추상화하기 위해서 protocol을 사용했고 이 proto..
* 추상화하기 목차: https://ios-development.tistory.com/1627 제네릭스의 목표 공통화, 추상화, 코드의 유연성 구체적인 내용은 이전 포스팅 글 참고 제네릭스 훑어보기 - 함수에 적용 함수에 적용 - 함수 이름 오른쪽에 꺽쇠를 사용하여 타입 표현 before) func swapTwoInts(_ a: inout Int, _ b: inout Int) { let temporaryA = a a = b b = temporaryA } func swapTwoStrings(_ a: inout String, _ b: inout String) { let temporaryA = a a = b b = temporaryA } func swapTwoDoubles(_ a: inout Double, _..
1. 추상화의 개념과 목적 2. 제네릭스로 추상화하기 3. 프로토콜에 제네릭스 사용하는 추상화 이해하기
Generics 제네릭스를 사용하는 목적 유연하고 재사용 가능한 함수 작성 중복을 피하고 그 의도를 명확하고 추상적인 방식으로 표현하는 코드 작성 Generics으로 해결할 수 있는 문제 swap 함수 // non-generics func swapTwoInts(_ a: inout Int, _ b: inout Int) { let temporaryA = a a = b b = temporaryA } // generics func swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA } generics를 사용하여 linked-list 구현 Node 정의 public class Node { var value: T va..