2015-06-23 30 views
1

我有一個自己調用的方法。即檢查方法來電來源? Objective-C

-(void)myMethod 
{ 
    //do stuff 
    [self myMethod]; 
    //do stuff 
} 

我需要檢查,從內myMethod那裏它被稱爲從。例如,IF稱爲myMethod做到這一點,否則做到這一點。

任何幫助非常感謝,謝謝。

+0

[Objective C查找方法的調用者]的可能的副本(http://stackoverflow.com/questions/1451342/objective-c-find-caller-of-method) – Glorfindel

+0

你可以傳遞一個參數給myMethod嗎?這是處理遞歸的標準方式。 –

回答

4

你可以傳遞一個布爾值來顯示從外部調用,從遞歸調用嗎?

-(void)myMethod:(bool)externalCall 
{ 
    //do stuff 
    [self myMethod:false]; 
    //do stuff 
} 

然後調用,從外面用:

[self myMethod:true]; 

這可能是過度簡化,特別是如果你需要從多個不同地點的調用方法(而不是遞歸VS外部調用)但在我看來,對你提出的問題最簡單的答案。