我是 iOS 开发新手。我正在学习将属性与类相关联。在那里,我遇到了将在 objc_setAssociatedObject 函数中使用的 objc_AssociationPolicy。它有一个参数 objc_AssociationPolicy。
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_ASSOCIATION_RETAIN:这会保留对值的强引用,并且在与其关联的对象被销毁或移除之前,该值不会被销毁。
OBJC_ASSOCIATION_COPY:这只保留值的副本,即没有对值的强引用
其他呢?每个案例是什么意思?这些是如何工作的?谁能举例说明一下?
最佳答案
这是来自运行时库的运行时特性 <objc/runtime.h>
如果您想在运行时为任何类添加自己的属性,您可以使用,objc_AssociationPolicy
它是此属性的属性,与 assign,copy,retain
相同(内存管理)在属性声明中查看更多信息 NSHipster article
关于ios - 什么是 objc_AssociationPolicy?它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701856/