一般的枚舉,打印時候會顯示枚舉信息,但是一般的對象,打印的時候只會顯示類名稱和內存空間了。同OC一樣,swift也是依靠重寫description來改變打印的內容。只不過,OC的description是重寫了方法,Swift是重寫了屬性。並且可以把這個屬性重寫的方法寫到分類中。在之前Swift版本,是可以通過分類重寫CustomStringConvertible協議和CustomDebugStringConvertible協議,修改description來實現。目前版本應該是NSObject自身就遵守了這兩個協議,所以會提示重復定義的錯誤。但是並不影響description的使用。
我們來創建一個Person類:
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,打印:
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let p = Person() p.name = "axx" p.age = 18 print(p) } }
結果:
Person類對象的名字是:Optional("axx"),年齡是:18