我想获得一些关于谁调用特定方法的信息。即,如果可能,获取进行呼叫的方法的行号和文件名。类似于 FILE 和 LINE ,除了堆栈中的一个级别。这在高级语言中是可行的,但是在Objective-C中可以做任何方式吗?
- (void)myMethod {
NSLog(@"I was called by file %@, line #%i", callingFile, callingLine);
}
答案 0 :(得分:1)
不,没有。您必须告诉用户自己传递__FILE__
和__LINE__
。
#define myMethod myMethodWithFile:__FILE__ line:__LINE__
...
-(void)myMethodWithFile:(const char*)file line:(int)line {
NSLog(@"I was called by file %s, line #%d", file, line);
}
...
[obj myMethod];