相关疑难解决方法(0)

避免关联对象键的额外静态变量

当使用关联对象,从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/)

是否有更简洁的方法来定义关联的对象键,这不涉及额外变量的声明?

objective-c objective-c-runtime associated-object

22
推荐指数
3
解决办法
7634
查看次数