当使用关联对象(从 iOS 4 和 OSX 10.6 开始提供的 Objective-C 运行时功能)时,有必要定义一个键用于在运行时存储和检索对象。
典型的用法是定义如下的键
static char const * const ObjectTagKey = "ObjectTag";
然后用就是存储对象
objc_setAssociatedObject(self, ObjectTagKey, newObjectTag, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
并检索它
objc_getAssociatedObject(self, ObjectTagKey);
(http://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with-associative-references/的例子)
是否有一种更简洁的方法来定义关联的对象键,而不涉及额外变量的声明?