Как завоевать репутацию или подпись существующего метода в NSString?

Простой перезапуск должен добиться цели :)

43
задан Abizern 3 September 2009 в 15:42
поделиться

4 ответа

Каждый вызов метода также проходит два скрытых аргумента: идентификатор с именем self и SEL с именем _cmd . Вы можете использовать NSStringFromSelector для преобразования селектора метода в NSString:

NSStringFromSelector(_cmd);
95
ответ дан 26 November 2019 в 22:33
поделиться

Используйте __ func __ . Это строка C, поэтому для NSString используйте [NSString stringWithUTF8String: __ func __] .

У этого есть два преимущества перед _cmd :

  1. Он работает в функциях C и Методы C ++, а также методы Objective-C. (Фактически, __ func __ требуется для существования C99.)
  2. В методах Objective-C он включает тип метода (метод класса против метода экземпляра) и имя класса, а также селектор . Например, "- [MyView drawRect:]" .
17
ответ дан 26 November 2019 в 22:33
поделиться

В соответствии с ответом Мартина, но вы также можете прочитать информацию о Objective C 2.0 Runtime .

Подобная игра на пустяках, как правило, приводит к трудностям однако управлять кодом.

1
ответ дан 26 November 2019 в 22:33
поделиться

В качестве примера полезности такого рода вещей: Это шаблон для сообщений NSLog, который я использую:

NSLog(@"%@ %@: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), @"A Message");

Это выводит класс и метод на консоль при регистрации.

7
ответ дан 26 November 2019 в 22:33
поделиться