2010-01-23 25 views
2

我想獲得一些有關誰稱爲特定方法的信息。也就是說,如果可能的話,獲取撥打電話的方法的行號和文件名。類似於FILELINE,除了堆疊中的一個級別。這在高級語言中是可行的,但是在Objective-C中可以使用這種方法嗎?如何獲取有關誰稱爲方法的信息?

- (void)myMethod { 
    NSLog(@"I was called by file %@, line #%i", callingFile, callingLine); 
} 
+0

這是http://stackoverflow.com/questions/1793999/how-to-find-out-whocalled-a-method – bbum 2010-01-23 09:39:15

回答

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];