我正在扩展 Swift 2.0 中的一些类以使用 ReactiveCocoa 3.0(swift-2.0 分支),但遇到了一些麻烦。
我遵循 Colin Eberhardt 的教程,并将他的一些UIKit 扩展逻辑复制粘贴到我的 OS X 应用程序中。除了这个属性之外,它都编译得很好:UInt(OBJC_ASSOCIATION_RETAIN)
,它给了我以下编译器错误。
使用未解析的标识符
我怎样才能访问这个属性?我已经尝试在头文件中import ObjectiveC
,#import <objc/runtime.h>
但似乎没有任何效果。
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
}()
}