У меня есть класс с переменной экземпляра типа SEL, которая является ссылкой на селектор. Внутри encodeWithCoder / initWithCoder, как мне кодировать / декодировать переменные этого типа?
Вы можете преобразовать его в / из строки с помощью NSStringFromSelector и NSSelectorFromString. В любом случае селекторы на самом деле являются строками под капотом.
Вы можете использовать encodeValueOfObjCType:at::
encodeValueOfObjCType:at:
SEL s = ...; [coder encodeValueOfObjCType:@encode(SEL) at:&s];
Вы также можете использовать NSValue для архивации ключей.
NSValue
Или просто вы можете использовать NSStringFromSelector и NSSelectorFromString.
NSStringFromSelector
NSSelectorFromString