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