import UIKit class LSObjectWrapper: NSObject { let value: ((barButton: UIButton?) -> Void)? init(value: (barButton: UIButton?) -> Void) { self.value = value } }
private var LSActionBlockKey = 0 var actionBlock:((barButton: UIButton?) -> Void)?{ get{ let wrapper:LSObjectWrapper? = objc_getAssociatedObject(self, &LSActionBlockKey) as? LSObjectWrapper let block = wrapper?.value return block; } set{ let wrapper = LSObjectWrapper(value: newValue!) objc_setAssociatedObject(self, &LSActionBlockKey, wrapper, objc_AssociationPolicy(OBJC_ASSOCIATION_RETAIN_NONATOMIC)) } }
weak等类型类似