在Swift中,class依然可以使用关联对象
默认情况,extension不可以增加存储属性
借助关联对象,可以实现类似extension为class增加存储属性的效果
class Person {} extension Person { private static var AGE_KEY: Void? var age: Int { get { (objc_getAssociatedObject(self, &Self.AGE_KEY) as? Int) ?? 0 } set { objc_setAssociatedObject(self, &Self.AGE_KEY, newValue, .OBJC_ASSOCIATION_ASSIGN) } } }
标签:extension,AGE,扩展,objc,KEY,swift,class,属性 From: https://www.cnblogs.com/huangzs/p/16707002.html