2012年5月1日 星期二

Objective C 學習隨記(三)

Category (類目)

class 觀念的延伸, 對於一個class的methods, 你可以分成不同的category, 然後在不同的實作檔定義, 這對大型的專案共同開發同一個class很有用, 另一個好處是可以加入新的方法到一個class而不會影響修改到原有的定義

實作方法例如:
in 2dops.m

@interface GraphicObject (2Dops)
-(void)drawObject:(GraphicObject*) gb;
-(void)moveObject:(GraphicObject*) gb:(int) x:(int) y;
@end

in 3dops.m

@interface GraphicObject(3Dops)
-(void)rorateObject:(GraphicObject*) gb: (int) x-axis: (int) y-axis;
@end

另有無命名的category, 其實作必須要跟class 的實作在同一個實作檔案

Protocol(協定)

objC可以宣告介面, 宣告方式如下
@protocol ProtocolName
-(id) protocolmethods: (ParameterType) Para1;
@end

class如果要conform此protocol, 就要實作protocolmethod

在class宣告地方
@interface classname:NSObject <ProtocolName>

method 實作方法跟class method一樣