Swift 2:OBJC_关联_保留_未解析标识符的非原子使用
我刚刚将我的项目更新为Swift 2 我是swift班的一员,我使用ObjC协会 我有以下资料:Swift 2:OBJC_关联_保留_未解析标识符的非原子使用,swift,swift2,Swift,Swift2,我刚刚将我的项目更新为Swift 2 我是swift班的一员,我使用ObjC协会 我有以下资料: objc_AssociationPolicy( OBJC_ASSOCIATION_RETAIN_NONATOMIC) 自更新后,编译器返回未解析标识符“OBJC\u ASSOCIATION\u RETAIN\u NONATOMIC”的用法 知道为什么吗 编辑: 对于那些有相同问题的人,一个临时解决方案是用常量的值替换常量,即1:objc\u AssociationPolicy(rawValue:
objc_AssociationPolicy( OBJC_ASSOCIATION_RETAIN_NONATOMIC)
自更新后,编译器返回未解析标识符“OBJC\u ASSOCIATION\u RETAIN\u NONATOMIC”的用法
知道为什么吗
编辑:
对于那些有相同问题的人,一个临时解决方案是用常量的值替换常量,即1:objc\u AssociationPolicy(rawValue:1)
如果查看obj c runtime swift头,该构造似乎已成为枚举:
/**
* Policies related to associative references.
* These are options to objc_setAssociatedObject()
*/
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\u AssociationPolicy.objc\u ASSOCIATION\u RETAIN\u NONATOMIC
如果您需要令牌作为UInt,则始终可以使用.rawValue
(在以前的版本中,objc\u AssociationPolicy
只是UInt的一个类型别名-效果是强制转换“objc\u ASSOCIATION\u RETAIN\u NONATOMIC”,一个Int)尝试以下方法:
import ObjectiveC.runtime
func setOverlay(view: UIView)
{
objc_setAssociatedObject(self, &AssociatedKeys.overlayKey, view, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
可能重复的