I Have a question about Xcode and Objective-C.
I want to make this simple action in Xcode:
If I type this :
NSLog(@"something else");
I want Xcode to wr开发者_高级运维ite (or execute after compile):
NSLog(@"[%@] something else", NSStringFromClass([self class]));
Another way could be for Xcode 4 to suggest this in the autocomplete menu, when I type NSLog...
Here is a complete set of Log #define directives (including ULog, a UIAlertView based Logging feature)
// 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
As written by Ciryon, just put them in your precompiled header (.pch) file.
(source: http://overbythere.co.uk/blog/2012/01/alternatives-nslog)
You probably rather want to make a macro and put it in your precompile header (.pch) file.
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
(Taken from this blog post)
Why not you use some other very excellent alternative options available like SOSMAX or NSLogger as i have written about them here http://learning-ios.blogspot.com/2011/05/better-nslog-ing.html
精彩评论