Objective-c, like the C language, provides standard macros that describe the current file, the number of lines in the source file, and the function information. The objective-c itself, however, also provides the associated class type. can be applied to debugging and error-handling logs.
The macros provided by the preprocessor in the C/c++/objective-c language
* __func__%s Current function signature * __line__%d Current number of rows in source code file
* __file__%s Current source code file full path
* __pretty_function__%s is like __func__, but contains stealth type information in C + + code.
Some log information used in the OBJECTIVE-C
* Nsstringfromselector (_cmd)%@ current selector name * Nsstringfromclass ([selfclass])%@ Current object name * [[NSString stringwithutf8string:**file**] lastpathcomponent]%@ source code filename * [Nsthreadcallstacksymbols]%@ an array of readable strings for the current stack. Used only when scheduling.
* * Example code: * *
• #import <foundation/Foundation.h>
•
• @interface Testobj:nsobject
-(void) Fun: (NSString *) input;
• @end
•
• @implementation Testobj
-(void) Fun: (NSString *) input {
NSLog (@ "%s:%d:%s:%s", __func__, __line__, __file__,__pretty_function__);
NSLog (@ "%@", Nsstringfromselector (_cmd));
NSLog (@ "%@", Nsstringfromclass ([self class]);
NSLog (@ "%@", [[NSString stringwithutf8string:__file__] lastpathcomponent]);
NSLog (@ "%@", [Nsthread Callstacksymbols]);
NSLog (@ "%@", input);}
@end
int main (int argc, const char * argv[]) {
@autoreleasepool {
Testobj *to = [[Testobj alloc]init];
[To fun:@ ' call '];
[to release];
}
return 0;
}