CustomStringConvertible 사용해보기

Lin·2020년 2월 13일
1

iOS

목록 보기
4/7

CustomStringConvertible Protocol


애플 공식문서에서의 CustomStringConvertible에 대한 정의

인스턴스를 문자열로 변환할 때 사용가능한 자체적인 표현을 제공할 수 있습니다.

해당 프로토콜을 준수하려면 description 프로퍼티를 구현해야 한다.

CustomStringConvertible프로토콜을 채택하지 않은 경우 표준 라이브러리에서 제공하는 기본 표현을 사용한다.

struct Point {
    let x: Int, y: Int
}

let p = Point(x: 21, y: 30)
print(p)
// Prints "Point(x: 21, y: 30)"

CustomStringConvertible프로토콜을 채택하고 준수한 경우 사용자가 지정한(만든) 표현을 사용하게 된다.

extension Point: CustomStringConvertible {
    var description: String {
        return "(\(x), \(y))"
    }
}

print(p)
// Prints "(21, 30)"

포커게임 프로젝트에서 enum에 해당 프로토콜을 채택해서 case의 rawValue를 출력하려고 사용했었다. 처음에 case와 매칭한 값을 꺼내오는 함수를 생각했다가 다른 방법이 있을것 같아서 검색(삽질)해서 겨우 찾은 프로토콜..

enum Suit: String, CustomStringConvertible {
        case spade = "s"
        case diamond = "d"
        case heart = "h"
        case clover = "c"
        
        var description: String {
            return "\(self.rawValue)"
        }
}

출처 : https://developer.apple.com/documentation/swift/customstringconvertible

profile
수많은 에러를 경험 중..😵

0개의 댓글