1協議:簡單滴說就是相似於java中的接口。
1.1定義
@protocol 協議名
//methods declare
@optional //methods declare
@required //methods declare
@end
相似於:
public interface 協議名{
方法聲明
}
eg:
@protocol MyProtocol
-(void)add;
-(void)jian;
-(void)cheng;
@end
1.2使用
在類的聲明中經過<>來指定協議,將協議名寫在<>中,如有多個協議,則用逗號分隔開。
例如:
定義一個學生類:
@interface Student:NSObject<MyProtocol>
{
成員變量...
}
方法聲明...
@end
相似於:public class Student extends NSObject implements MyProtocol{}
1.3能夠用協議來限定變量類型或方法參數類型的範圍:
eg: id<MyProtocol> ptr = xxxx;
這個代表ptr這個變量只能保存實現了MyProtocol類的對象。
-(void) setPerson:(Person<MyProtocol>) person;
這個代表setPerson:這個方法只能接收實現了MyProtocol類的對象.