본문 바로가기

SWIFT

[Swift 문법] 프로토콜을 사용한 조건문 줄이기 안녕하세요. 이번 글에선 프로토콜을 사용해서 코드의 가독성을 높이는 방법에 대해 알아보도록 하겠습니다.  저같은 경우 프로토콜을 처음 접했을때 어떤 상황에서 사용하는게 좋은건지 몰랐지만 지금 제가 소개하는 간단한 예제를 통해서프로토콜을 사용하면 불필요한 반복문도 줄이고 유연하게 만들 수 있구나를 알아가시면 좋을 것 같네요. 먼저 예제로 살펴볼 코드는 프로토콜을 사용하지 않은 예 입니다.class Car { func drive() { print("차를 운전합니다.") }}class Bicycle { func drive() { print("자전거를 탑니다.") }}func activateVehicle(_ vehicle: Any) { if vehicle is .. 더보기
[Swift 문법] if case 를 사용한 패턴매칭 오늘은 Swift 의 if case 를 사용한 패턴매칭에 대해 알아보려합니다.이름만 들었을땐 이게 뭐지 생각하실 수도 있지만  막상 코드를 보면 아 이럴때 사용하던거였구나 하실 겁니다.사용하기에 앞서 enum 타입을 먼저 살펴보겠습니다. enum T1 { case top(name: String, years: Int) case jungle(name: String, years: Int) case mid(name: String, years: Int) case ad(name: String, years: Int) case support(name: String, years: Int)}let zeus = T1.top(name: "최우제", years: 4)let oner = T1.jungl.. 더보기
[Combine] eraseToAnyPublisher 는 무엇이고 어떻게 사용하는걸까? Combine 프레임워크에서 제공하는 eraseToAnyPublisher 가 무엇이고 어떻게 사용하는건지 알아보도록 하겠습니다. 공식문서를 살펴보면 type eraser 를 사용하여 publisher 를 래핑한다고 정의되어 있네요. 그렇다면 type eraser 는 뭘까요? type eraser 는 publisher 유형을 지우고 더 일반적인 형태로 변환하는 프로세스를 가르키는 용어라 생각할 수 있습니다. eraseToAnyPublisher() 를 사용함으로써 다양한 모듈에서 추상화를 유지할 수 있게 해주고 기존 클라이언트에 영향을 주지 않고 기본 구현을 변경할 수 있다는 장점이 있다고 작성되어 있습니다. 아래 코드에 작성되어 있는 예제에서 TypeWithSubject 의 경우 실제 유형인 Passthr.. 더보기