iOS oc和swift中协议的使用

创建一个空的工程

在工程中我们新建一个类 继承与NSObject 

定义一个协议‘

@protocol UpdateAlertDelegate <NSObject> //这里的红色字体就是我们定义的协议的名称

- (void)updateAlert;//这个就是如果某个类要遵循此协议必须实现的一个方法,有参数或者无参数视情况而定

 

@end

@interface TimerControl : NSObject

@property (nonatomic, weak) id<UpdateAlertDelegate> delegate;

@end

 

在这个协议类实现的文件里

当需要委托另一个类做一些事情的时候

我们就可以在这个协议类的实现文件里写上这么一行代码

 [self.delegate updateAlert];

 

在要遵循此协议的类里 首先要接受此协议‘

@interface DelegateDemoViewController : UIViewController<UpdateAlertDelegate> 

 

协议对象.delegate = self; //设置代理实例 

 而且还要必须实现此协议规定的一些方法

- (void)updateAlert {//实现协议的方法


也就是说当协议类里的[self.delegate updateAlert];这句代码执行以后 紧接着执行的是遵循此协议的类里面实现的此协议规定的协议方法

 

swift

1.首先定义一份协议。
protocol ToolProrocol{
   //代理方法
   func didRecieveResults(result:Int)
}

2.定义一个代理属性
//声明代理属性
var delegate : ToolProrocol?

3. 实用者,首先加上
class ViewController: UIViewController,ToolProrocol 

4.并且设置代理和实现
  xxx.delegate = self
  func didRecieveResults(result: Int) {
    }

5. 最后直接调用就ok了
self.delegate?.didRecieveResults(1)

虽然有点绕  但事实就是这样  哈哈哈 完事   只要理解了其实你想用的时候自然而然的就写出来了   

posted @ 2016-08-06 16:44  无敌小蚂蚱  阅读(1030)  评论(0编辑  收藏  举报