对类对象使用objc_setAssociatedObject
是否正确?
我们经常使用这样的静态变量来模拟类变量: Objective C Static Class Level variables 但是,我们可以使用关联对象作为替代对象吗?
objc_setAssociatedObject([self class], &STRING_KEY, myString, OBJC_ASSOCIATION_RETAIN);
答案 0 :(得分:5)
是的,类对象是一个成熟的对象,因此您可以对常规对象执行任何操作。
但是,使用全局变量更清晰,更简单。
P.S。将它与[self class]
相关联与使用全局变量不同,因为[self class]
为您提供当前对象的实际类,这可能因子类继承此方法而有所不同。而对于全局变量,它将始终是相同的变量。