Jessi :D

protocol

protocol

Swift - 프로토콜 associatedType

associatedtype 을 통해 제네릭으로 어떠한 자료형이든 가질수 있다 Protocol 애완동물 관련 프로토콜 protocol PetHaving { associatedtype T // 애완동물 배열 var pets: [T] { get set } // mutating을 통해 스트럭트에서 멤버 변수 값변경 mutating func gotNewPet(_ newPet: T) } ※ mutating - 포스트 바로가기 Extension 익스텐션으로 프로토콜의 메소드 로직 구성 extension PetHaving { mutating func gotNewPet(_ newPet: T) { self.pets.append(newPet) } } Enum enum Animal { case cat, dog, bird } ..

Swift - 프로토콜 확장

프로토콜 자체에서는 로직을 추가할 수 없으므로 익스텐션 확장을 이용해 메소드 추가함 프로토콜 이름관련 프로토콜 protocol Naming { var lastname: String { get set } var firstname: String { get set } func getName() -> String } 익스텐션 익스텐션 확장으로 메소드 추가 extension Naming { func getFullName() -> String { return self.lastname + " " + self.firstname } } 스트럭트 Naming 프로토콜을 임플레먼트하는 스트럭트 struct Friend : Naming { var lastname: String var firstname: String func ..