2011-09-03 65 views
2

說的方法,如果我有一個方法如下:Objective-C的呼叫從另一種方法

- (void)carpentorLoad { 
     NSlog(@"HI... Hello"); 
} 

現在,我需要從另一種方法調用此方法,說- (int) CallingMethod

-(int) CallingMethod{ 
    // Here, i need to call carpentorLoad Method 
    return 0; 
} 

我應該如何調用carpentorLoadCallingMethod做到這一點?

回答

1

是同一類這些方法?如果是這樣,你可以這樣做:

- (int) CallingMethod { 
    [self carpentorLoad]; 
    return 0; 
} 

如果他們在不同的班級,那麼你就需要向第二類的引用傳遞到您的調用方法,如:

- (int) CallingMethod: (Carpentor*)theCarpentor { 
    [theCarpentor carpentorLoad]; 
    return 0; 
} 
+0

要麼通過參考或調用一個方法/函數,返回該引用(可能是屬性getter)或保持在一個實例變量的參考。 – 2011-09-03 07:34:17

+0

所以'(Carpentor *)theCarpentor'不是我猜的參數?它僅僅是對Carpentor類的參考?我對麼 ? – Illep

+0

不,它是對Carpentor類實例的引用。如果你的方法是靜態的,那麼你不需要傳遞一個實例,你可以使用'[Carpentor carpentorLoad];'。沒有看到你的對象是如何定義的,很難給你一個確切的答案。 – aroth

1

假設他們是同一個對象,你可以叫[self carpentorLoad]

如果carpentorLoad是另一個類的成員,請分別調用[<ClassName> carpentorLoad][<yourObject> carpentorLoad],具體取決於它是靜態還是實例方法。

+0

你能不能給我一個例子'[ carpentorLoad]'在什麼''在 – Illep

+0

' - (無效)carpentorLoad',領先的破折號意味着它是一個實例方法。 – 2011-09-03 07:32:53

+0

這只是一個對象,來自任何有「carpentorLoad」類的對象。和@Bavarious,你是完全正確的,雖然考慮到該方法的作用,OP可能實際上希望它是靜態的。 –

1

在Objective-C,你不叫方法,你發送郵件。 Obj-C運行時將您的消息與接收者類或其祖先類之一中的方法進行匹配,然後調用它找到的方法。