Swift 调用 objc/runtime OBJC_ASSOCIATION_RETAIN
发布时间:2020-12-14 01:36:39 所属栏目:百科 来源:网络整理
导读:我扩展一些类在 Swift 2.0 工作与 ReactiveCocoa 3.0 (swift 2.0 分支),但遇到了一些问题。 我跟随科林 ·艾伯哈特的教程,和有复制粘贴一些他UIKit 扩展逻辑结束对我的 OS X 应用程序。它所有的编译很好,除了此属性: UInt(OBJC_ASSOCIATION_RETAIN) ,这
我扩展一些类在 我跟随科林 ·艾伯哈特的教程,和有复制粘贴一些他UIKit 扩展逻辑结束对我的 OS X 应用程序。它所有的编译很好,除了此属性:
如何访问此属性?我一直对 func lazyAssociatedProperty<T: AnyObject>(host: AnyObject,key: UnsafePointer<Void>,factory: ()->T) -> T { return objc_getAssociatedObject(host,key) as? T ?? { let associatedProperty = factory() objc_setAssociatedObject(host,key,associatedProperty,UInt(OBJC_ASSOCIATION_RETAIN)) // <-- Use of unresolved identifier return associatedProperty }() } 解决方法 1: 这是实际上现在导入 enum objc_AssociationPolicy : UInt { case OBJC_ASSOCIATION_ASSIGN case OBJC_ASSOCIATION_RETAIN_NONATOMIC case OBJC_ASSOCIATION_COPY_NONATOMIC case OBJC_ASSOCIATION_RETAIN case OBJC_ASSOCIATION_COPY } 用于如下的含义。 objc_setAssociatedObject(host,objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN) 或与枚举速记语法。 objc_setAssociatedObject(host,.OBJC_ASSOCIATION_RETAIN) 请注意, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |