Swift那些事之-给分类添加属性

279 阅读1分钟

import UIKit


var str = "Category添加属性"


class MyClass {
    
    
}
private var key: Void?


extension MyClass {
    var title: String?{
        get {
            return objc_getAssociatedObject(self, &key) as? String
        }
        set {
            objc_setAssociatedObject(self, &key, newValue, .OBJC_ASSOCIATION_RETAIN)
        }
    }
    
}


//测试
func printTitle(_ input:MyClass){
    if let title = input.title {
        print("title: \(title)")
    } else {
        print("没有该属性")
    }
}




let classs = MyClass()
classs.title = "Jason"
printTitle(classs)