Селекторы списка для объекта Objective C

35
задан JAL 10 February 2016 в 02:10
поделиться

2 ответа

Это - решение на основе времени выполнения C функции:

class_copyMethodList возвращает список методов класса, учитывая Объект класса, доступный от объекта.

#import <objc/runtime.h>

[..]

SomeClass * t = [[SomeClass alloc] init];

int i=0;
unsigned int mc = 0;
Method * mlist = class_copyMethodList(object_getClass(t), &mc);
NSLog(@"%d methods", mc);
for(i=0;i<mc;i++)
    NSLog(@"Method no #%d: %s", i, sel_getName(method_getName(mlist[i])));

/* note mlist needs to be freed */
73
ответ дан diciu 27 November 2019 в 06:32
поделиться

Что-то вроде этого должно работать (просто помещает его в объект, Вам любопытно на предмет). Например, если у Вас есть объект, это - делегат, и хотят знать, какие 'рычаги' доступны, это распечатает сообщения, чтобы дать Вам что ключ к разгадке:

-(BOOL) respondsToSelector:(SEL)aSelector {
    printf("Selector: %s\n", [NSStringFromSelector(aSelector) UTF8String]);
    return [super respondsToSelector:aSelector];
}

Примечание, что я обнаружил это в iPhone Developer's Cookbook , таким образом, я не могу взять кредит! Например, вывод, который я получаю от UIViewController, который реализует протоколы <UITableViewDelegate, UITableViewDataSource>:

Selector: tableView:numberOfRowsInSection:
Selector: tableView:cellForRowAtIndexPath:
Selector: numberOfSectionsInTableView:
Selector: tableView:titleForHeaderInSection:
Selector: tableView:titleForFooterInSection:
Selector: tableView:commitEditingStyle:forRowAtIndexPath:
Selector: sectionIndexTitlesForTableView:
Selector: tableView:sectionForSectionIndexTitle:atIndex:
...
...
etc.,etc.
1
ответ дан Jason Plank 27 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

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