【发布时间】:2015-04-07 08:40:22
【问题描述】:
我一直以这种方式使用 objc_setAssociatedObject():
objc_setAssociatedObject(myObject, @"myKey1", obj2, OBJC_ASSOCIATION_ASSIGN);
特别是,我的键是一个字符串,所以编译器使用指向该字符串的指针。我在 objc_getAssociatedObject() 中指定了相同的字符串:
objc_getAssociatedObject(myObject, @"myKey1").
我已经使用这个方案很长时间了,没有任何问题。但是,SO 上的示例使用指向静态变量的指针,所以我现在意识到我的方法可能不正确。编译器每次都使用相同的指针,所以它总是有效的。
我的方法好吗?它似乎等同于使用指向静态字符串的指针。在什么情况下编译器可能会存储我的密钥的两个不同副本?
【问题讨论】:
标签: ios objective-c