Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.1 KB

7.7 CustomStringConvertible 和 CustomDebugStringConvertible.md

File metadata and controls

37 lines (27 loc) · 1.1 KB

字符串

7.7 CustomStringConvertible 和 CustomDebugStringConvertible

本小节内容基本简单,就是讲了这两个简单协议的用法

这两个协议主要就是类似于Objective-C中的重写description方法

继承协议 实现descriptiondebugDescription 属性 即可打印出想要的数据内容

具体使用见下Demo

  struct Person:CustomStringConvertible,CustomDebugStringConvertible {
    var age: Int
    var name: String
    var job: String

    var description: String {
        return "\(age) \(name) \(job)"
    }

    var debugDescription: String {
        return "\(name) \(age) \(job)"
    }
  }

  let meetings = Person(age: 18, name: "liaoWorking", job: "iOSDeveloper")
  print(meetings)
  /**
   *  "18 liaoWorking iOSDeveloper\n"
   */
  debugPrint(meetings)
  /**
   *  "liaoWorking 18 iOSDeveloper\n"
   */
知识点1: 书中建议任何稍微复杂一些的类型都应该实现 CustomStringConvertible协议,日常debug调试可阅读性会好很多。