Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- NSAttributedString
- Git
- unowned
- CustomStringConvertible
- Singleton Design Pattern
- JSONEncoder
- UIDocument
- UIBezierPath
- Codable
- UIGestureRecognizer
- UIDynamicAnimator
- UIDocumentBrowserViewController
- 에어팟
- rxswift
- Observable
- PhotoKit
- Equatable
- Hashable
- Stanford cs193p
- MVP
- CoreGraphics
- IOS
- Swift
- JSONDecoder
- 오늘의성취도
- Arc
- AVFoundation
- uicollectionview
- reactivex
- weak
Archives
- Today
- Total
아직은 개린이
[Swift] CustomStringConvertible 본문
애플 공식 문서에 보면,
CustomStringConvertible은 텍스트적인 표현을 커스터마이즈하는 타입이라고 적혀있다.
공식 문서에 나온 예시를 보면, CustomStringConvertible 프로토콜을 정의하지 않고, 그냥 구조체를 출력하면 기본 표현으로 출력한다.
struct Point {
let x: Int, let 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)"
'Swift + iOS > Swift' 카테고리의 다른 글
[Swift] weak, unowned (0) | 2020.02.27 |
---|---|
[Swift] ARC (0) | 2020.02.26 |
[Swift] lazy (0) | 2020.02.10 |