переопределить NSLog в Xcode - PullRequest
2 голосов
/ 03 мая 2011

У меня есть вопрос по Xcode и Objective-C.

Я хочу выполнить это простое действие в Xcode:

Если я наберу это:

NSLog(@"something else");

Я хочу, чтобы Xcode записал (или выполнил после компиляции):

NSLog(@"[%@] something else", NSStringFromClass([self class]));

Другой способ может быть для Xcode 4 предложить это в меню автозаполнения, когда я набираю NSLog ...

Ответы [ 3 ]

7 голосов
/ 12 сентября 2012

Вот полный набор директив Log #define (в том числе ULog , функция ведения журнала UIAlertView )

// DLog will output like NSLog only when the DEBUG variable is set

#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...)
#endif

// ALog will always output like NSLog

#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

// ULog will show the UIAlertView only when the DEBUG variable is set 

#ifdef DEBUG
#   define ULog(fmt, ...)  { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__]  delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }
#else
#   define ULog(...)
#endif

Как написано Ciryon , просто поместите их в файл предварительно скомпилированного заголовка (.pch).

(источник: http://overbythere.co.uk/blog/2012/01/alternatives-nslog)

1 голос
/ 05 мая 2011

Скорее всего, вы хотите создать макрос и поместить его в файл заголовка прекомпиляции (.pch).

#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...)
#endif

(взято из этого блога )

0 голосов
/ 19 мая 2011

Почему бы вам не использовать другие очень отличные альтернативные варианты, такие как SOSMAX или NSLogger, как я написал о них здесь http://learning -ios.blogspot.com / 2011/05 / better-nslog-ing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...