2012-12-20 1 views
3

Я хочу создать пользовательское ключевое слово программно в iphone. Напр. NSLog печатает журнал в консоли. Есть много разных фреймворков, которые используют свои собственные журналы (настраиваемые журналы), такие как Aphlogs и т. Д. Я хочу определить свое собственное ключевое слово, такое как MYLogs, так что когда я использую где-либо MYLogs(stackoverflow);, он должен вызывать метод «MYLogsCalled» с «stackoverflow» в качестве параметра и я могу выполнять свои собственные действия в этом методе.определить пользовательское ключевое слово в ios programatically

+0

Не можете ли вы использовать #define –

ответ

2

Вы можете использовать макрос, чтобы сделать это быстро.

сначала создать метод, который вы хотите позвонить, так что класс с именем MyLogs и добавить метод

+ (void)myLogsCalled:(id)arg; //do whatever you want in the implementation 

затем определить макрос

#define MyLogsCalled(arg) [MyLogs myLogsCalled:arg] 

другого способа заключается в определении Экстерной функции который обрабатывает журналы (это то, что делает NSLog), но с использованием #defines делает его более чистым, чтобы делать такие вещи, как отключение журналов в сборках выпуска like DLog typically does

+0

Могу ли я вызвать вышеупомянутое как mylog (test); – Warrior

+0

, если вы #define то же, что и в моем примере, выполнив 'MyLogsCalled (@" test ");' будет таким же, как вызов '[MyLogs myLogsCalled: @" test "];' поэтому, если у вас есть #define в том же формат, называемый mylog, тогда да – wattson12