Я знаю, что на этот вопрос давным-давно ответили, но на тот случай, если кто-нибудь наткнется на него, как я ...
Комбинация NSStringFromSelector
и NSSelectorFromString
, как ответили выше, вероятно, лучший путь. Но если вы действительно хотите, вы можете использовать селектор в качестве значения или ввести NSDictionary
.
Селектор (тип SEL
) реализован как указатель на структуру во время выполнения Apple Objective-C. Указатель нельзя использовать непосредственно в словаре, но указатель можно заключить в объект NSValue
, который можно использовать.
Используя этот метод, вы можете сохранить селектор как значение в словаре, используя такой код:
dictionary =
[NSDictionary dictionaryWithObject:[NSValue valueWithPointer:selector]
forKey:key];
Селектор может быть получен с помощью кода, подобного следующему:
SEL selector = [[dictionary objectForKey:key] pointerValue];
Аналогично использованию селектора в качестве ключа:
dictionary =
[NSDictionary dictionaryWithObject:value
forKey:[NSValue valueWithPointer:selector]];
value = [dictionary objectForKey:[NSValue valueWithPointer:selector]];