4

objc_setAssociatedObject用于类对象是否正确?

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

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

1 回答 1

5

是的,类对象是一个成熟的对象,所以你可以对它做任何你可以用普通对象做的事情。

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

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

于 2013-03-25T09:02:01.593 回答