- 為字首是 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] 動作*/
文章標籤
全站熱搜