Swift3.0之print和debugPrint

  通常的枚舉,打印時候會顯示枚舉信息,可是通常的對象,打印的時候只會顯示類名稱和內存空間了。同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對象

相關文章
相關標籤/搜索