对象关联 (ObjectAssociation)

一个Swift库,用于将对象作为属性与引用类型的对象关联起来。

它的工作方式与 objc_getAssociatedObject/objc_setAssociatedObject 相同。但是,这个库也可以在Linux平台以及其他不运行 Objective-C 运行时的平台上使用。

Github issues Github forks Github stars Github top language

用法 (Usage)

基本用法与 objc_getAssociatedObject/objc_setAssociatedObject 相同。但没有策略设置。

class ClassItem {
    enum Keys {
        static var value: UInt8 = 0
    }

    var value: String? {
        get {
            getAssociatedObject(
                self,
                &ClassItem.Keys.value
            ) as? String
        }
        set {
            setAssociatedObject(
                self,
                &ClassItem.Keys.value,
                newValue
            )
        }
    }
}

移除所有关联值 (Remove all associated values)

removeAssociatedObjects(self)