OC中的協議相當於Java中的接口。
協議實際上就是定義了一組方法,然後讓其他類去實現這些方法。是多個類共享一個方法列表.協議中列出的類沒有響應的實現,由其他類來實現。
協議的定義格式爲:
@protocol 協議名 <父協議>
方法
@end
例如:
- @protocol protocol <NSObject> 注:這裏NSObject不是NSObject類,而是NSObject協議,NSObject協議是OC中的第一個協議,NSObject類與NSObject協議命名相同在OC中互不影響。
如果類實現了多項協議,協議之間用逗號分開.
協議是無類的.任何類都可以遵守協議.
可以使用ConformsToProtocal:方法檢查一個對象是否遵守某項協議
協議定義中有兩個修飾符:
@required:有這個修飾符修飾的方法是其他類是必須實現的
@optional:有這個修飾符修飾的方法是其他類是可選實現的
注: 默認是@required
協議的使用: 直接在繼承類(NSObject)後面 <協議名> 然後在.m文件裏實現協議的方法即可。
例如:
- @interface Person : NSObject <協議名>