CustomStringConvertible
자주 보이는 기본 중의 기본 프로토콜인데
제대로 써본 적이 없어서 애플 문서를 보며 짚고 넘어가려고 한다💁♀️
정의
이 프로토콜을 따르는 타입은 사용자 정의에 따른 텍스트 출력이 가능하다.
protocol CustomStringConvertible
사용 방법
만약 아래와 같은 struct에 CustomStringConvertible
프로토콜을 설정한다면,
struct Point {
let x: Int, y: Int
}
프로토콜 채택 후, description
프로퍼티를 통해 출력 방식을 설정하면 된다.
(CustomStringConvertible
추가 시 Xcode가 알아서 필요한 stubs를 제안해줌)
extension Point: CustomStringConvertible {
var description: String {
return "(\(x), \(y))"
}
}
그러면 해당 인스턴스를 print
했을 때 설정한 방식대로 텍스트가 출력된다!
let p = Point(x: 21, y: 30)
print(p) //(21,30)
타입 내에서 직접 print
를 호출하는 것은 추천하지 않는다고 한다.
따라서 위의 프로토콜을 따라 원하는 출력 방식을 프로퍼티로 저장해 놓고, print
는 외부에서 호출하는 습관을 들이자!
참고
'Learnings > Swift & iOS' 카테고리의 다른 글
[iOS] clipsToBounds 란 무엇인가? (feat. 모서리를 둥글게 둥글게) (0) | 2021.03.21 |
---|---|
[iOS] UIScrollView 만들기 (0) | 2021.03.15 |
Swift 지연실행 실험 - NSTimer, asyncAfter, DispatchSourceTimer (0) | 2021.01.27 |
===와 !==, 참조 비교 연산자 - Swift (1) | 2021.01.13 |
고차함수 내용정리 (map, filter, reduce) (1) | 2021.01.06 |
댓글