協議(Protocol)類比java中的interface

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類的對象.

相關文章
相關標籤/搜索