Сохраните селектор как значение в NSDictionary

Есть ли способ сохранить селектор в NSDictionary, не храня его как NSString?

52
задан Josh Caswell 4 August 2015 в 08:25
поделиться

2 ответа

SEL - это просто указатель, который можно сохранить в NSValue :

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 
                       [NSValue valueWithPointer:@selector(foo)], @"foo",
                       nil];

Чтобы вернуть селектор , вы можете использовать:

SEL aSel = [[dict objectForKey:@"foo"] pointerValue];
104
ответ дан 7 November 2019 в 09:11
поделиться

NSDictionary на самом деле просто CFDictionary , который сохраняет и освобождает все ключи и значения. Если вы создаете CFDictionary напрямую, вы можете настроить его так, чтобы значения не сохранялись и не освобождались. Вы можете привести тип CFDictionaryRef к NSDictionary * и наоборот.

6
ответ дан 7 November 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: