美文网首页iOS必须SwiftSwift_VIP专场汇总iOS Developer
oc程序员学习swift(二)- 协议代理使用

oc程序员学习swift(二)- 协议代理使用

作者: LJ_影子 | 来源:发表于2016-12-23 11:35 被阅读112次

            swift协议代理的使用跟oc的协议代理差不套多,不过语法上还是有不小的区别。swift使用协议的关键字:protocol,协议的语法:protocol Pro1{//这里定义属性或者方法},

            swift创建协议并声明代理属性:

            protocol    ViewControllerSDelegate {

                        funcViewControllerDelegateLoadDataOne();   // 不带参的

                        funcViewControllerDelegateLoadDataTwo(str:String); // 带参的

            }

           func doClick() {  // 点击触发的方法

                      self.delegate?.funcViewControllerDelegateLoadDataOne()//让代理去执行代理方法

          }

            控制器方法实现

            class  ViewController:UIViewController,ViewControllerDelegate {

                  var   delegate:ViewControllerDelegate?;

                  override   func   viewDidLoad() {

                           super.viewDidLoad()

                           self.delegate=self;

                  }

                  internal  func  ViewControllerDelegateLoadDataOne() {

                  }

                  func   ViewControllerDelegateLoadDataTwo(str:String) {

                 }

           }

          oc拟定协议:

                @protocol  ViewControllerDelegate  <NSObject>

                @required//缺省属性,必须要实现

                - (void)show;//show是必须要实现

                 @optional//可选实现

                 - (void)show1;//show1是可实现也可不实现

                @end

               - (void) onClick { 

                        if([self.delegate respondsToSelector:@selector(show)]) {

                                  [self.delegate show];

                       }

                }

                遵守协议

              @interface  ViewController()<ViewControllerDelegate>

               @end

               设置代理实现方法   

                - (void)viewDidLoad {

                         [superviewDidLoad];

                         self.delegate = self; // 设置代理

                 }

                 -(void) show {

                }

                -(void) show1{

                }

    相关文章

      网友评论

        本文标题:oc程序员学习swift(二)- 协议代理使用

        本文链接:https://www.haomeiwen.com/subject/aefkvttx.html