Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 2:OBJC_关联_保留_未解析标识符的非原子使用_Swift_Swift2 - Fatal编程技术网

Swift 2: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:

我刚刚将我的项目更新为Swift 2

我是swift班的一员,我使用ObjC协会

我有以下资料:

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)
}
可能重复的