Вероятно, самый быстрый способ связать объект с произвольным другим объектом - это использовать objc_setAssociatedObject
.Чтобы использовать его правильно, вам нужен произвольный void *
для использования в качестве ключа;Обычный способ сделать это - объявить глобально static char fooKey
в вашем файле .m и использовать &fooKey
в качестве ключа.
objc_setAssociatedObject(alertView, &secretStringKey, mySecretString, OBJC_ASSOCIATION_RETAIN);
objc_setAssociatedObject(alertView, &intKey, [NSNumber numberWithInt:myInt], OBJC_ASSOCIATION_RETAIN);
Затем используйте objc_getAssociatedObject
для получения объектов позже.
NSString *mySecretString = objc_getAssociatedObject(alertView, &secretStringKey);
int myInt = [objc_getAssociatedObject(alertView, &intKey) intValue];
Используя OBJC_ASSOCIATION_RETAIN, значения будут сохраняться при присоединении к alertView
, а затем автоматически разблокироваться при освобождении alertView
.