- 為字首是 instance method  :

必須要由實體的物件,來發出訊息的,呼叫語法為"anObject instanceMethod"。

+ 為字首是 class method     :

不需建立實體物件,就可以經由"className classMethod"呼叫之。


以下直接舉例使讀者能夠快速理解

-(void) addSomethingToCup :(type) something{
    _something = something;
}

+(instancetype) init{
      //instancetype是一個特殊的回傳型態
      //他會回傳與呼叫者相同的型態

    Cup *myCup = [Cup alloc]
      //此處 alloc 也都是class method
    return myCup;
}

    [myCup addSomething: coffee]; 
      //呼叫addSomething

    myCup = [myCup init];
      //呼叫init與呼叫alloc是一樣的

    Cup *myCup = [[Cup alloc] init];
      //在實作上init 盡量與alloc一起呼叫,以免造成額外的問題,例如memory leak
      /*此處的呼叫會先從內部的[Cup alloc] 動作*/
arrow
arrow
    文章標籤
    object call
    全站熱搜

    Ernest 發表在 痞客邦 留言(0) 人氣()