Swift3.0之print和debugPrint


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM