协议protocol

2020-04-07  本文已影响0人  搬砖的crystal

一、 非正式协议

非正式协议就是类别,即凡是NSObject或其子类的类别,都是非正式协议。

二、协议(protocol)

Protocol(协议)类似一个类的接口,只声明,不实现。
Protocol只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做不关心。具体的实现要在遵守这个协议的类中实现。

1.基本作用
2.基协议

<NSObject>是基协议,是最根本的协议,其中声明了很多最基本的方法,如description,retain,release。建议每个新协议都要遵守NSObject协议

3.使用

(1)定义协议
可定义在单独.h文件中,也可用定义在某个类中。

@protocol TestProtocol <NSObject>
/*
 修饰方法的关键字
 @required :要求遵循协议的类必须实现,否则会发出警告,但不报错。
 @optional :不要求实现,不实现也不会有警告。
 */

-(void)testMethod;
@end

(2)遵守协议

#import <UIKit/UIKit.h>
#import "TestProtocol.h"

@interface TestView : UIView <TestProtocol>

@end

限制对象遵守某个协议

/*
 限制对象遵守某个协议:
 定义一个变量的时候,可以限制这个变量保存的对象遵守某个协议。如果没有遵守协议,编译器会警告。
 */
@property (nonatomic, strong) TestView <TestProtocol> *testView;
上一篇 下一篇

猜你喜欢

热点阅读