对类对象使用objc_setAssociatedObject是否正确?

时间:2013-03-25 06:45:38

标签: ios objective-c class static static-variables

对类对象使用objc_setAssociatedObject是否正确?

我们经常使用这样的静态变量来模拟类变量: Objective C Static Class Level variables 但是,我们可以使用关联对象作为替代对象吗?

objc_setAssociatedObject([self class], &STRING_KEY, myString, OBJC_ASSOCIATION_RETAIN);

1 个答案:

答案 0 :(得分:5)

是的,类对象是一个成熟的对象,因此您可以对常规对象执行任何操作。

但是,使用全局变量更清晰,更简单。

P.S。将它与[self class]相关联与使用全局变量不同,因为[self class]为您提供当前对象的实际类,这可能因子类继承此方法而有所不同。而对于全局变量,它将始终是相同的变量。