Unikaj dodatkowych zmiennych statycznych dla powiązanych kluczy obiektów

Podczas korzystania z powiązanych obiektów, dostępnych w środowisku wykonawczym Objective-C, począwszy od iOS 4 i OSX 10.6, konieczne jest zdefiniowanie klucza do przechowywania i pobierania obiektu w czasie wykonywania.

Typowe użycie definiuje klucz w następujący sposób

static char const * const ObjectTagKey = "ObjectTag";

a następnie użyj do przechowywania obiektu

objc_setAssociatedObject(self, ObjectTagKey, newObjectTag, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

i odzyskaj to

objc_getAssociatedObject(self, ObjectTagKey);

(przykład podany przezhttp://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with-associative-references/)

Czy istnieje bardziej przejrzysty sposób definiowania skojarzonego klucza obiektu, który nie obejmuje deklaracji dodatkowych zmiennych?

questionAnswers(3)

yourAnswerToTheQuestion