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对象

相关文章
相关标签/搜索