При использовании связанных объектов, доступна функция времени исполнения Objective-C, начиная с iOS 4 и OSX 10.6, необходимо определить ключ для хранения и извлечения объекта во время выполнения.
Типичное использование - это определение ключа, следующего за
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/)
Существует ли более чистый способ определения связанного ключа объекта, который не включает объявление дополнительных переменных?