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?