通常的枚舉,打印時候會顯示枚舉信息,可是通常的對象,打印的時候只會顯示類名稱和內存空間了。同OC同樣,swift也是依靠重寫description來改變打印的內容。只不過,OC的description是重寫了方法,Swift是重寫了屬性。而且能夠把這個屬性重寫的方法寫到分類中。在以前Swift版本,是能夠經過分類重寫CustomStringConvertible協議和CustomDebugStringConvertible協議,修改description來實現。目前版本應該是NSObject自身就遵照了這兩個協議,因此會提示重複定義的錯誤。可是並不影響description的使用。swift
咱們來建立一個Person類:ide
import UIKit class Person: NSObject { var name : String? var age : Int = 18 } extension Person{ override var description: String { return "Person類對象的名字是:\(self.name),年齡是:\(self.age)" } }
此時建立Person,賦值name和age,打印:spa
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let p = Person() p.name = "axx" p.age = 18 print(p) } }
結果:code
Person類對象的名字是:Optional("axx"),年齡是:18對象