Swift中的delegate

// delegate

// 当一个协议 没有任何的父协议时,说明它是可以被 struct, enum 实现的,声明一个实现了这个代理类型的实例时,就不能使用 weak。如果要使用 weak, 就需指定实现让这个协议的是 class ,让它实现  : class

// 另一种做法是,在将协议声明为 oc 类型的,在前面加 @objc 关键字。因为 OC 协议都只有类能实现,用weak 也就合理了

// 我们通常的做法是,新建协议的时候,让他实现  NSObjectProtocol

protocol MyClassDelegate: NSObjectProtocol {

func method()

}

class MyClass {

weak var delegate: MyClassDelegate?

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS开发中,代理模式(protocol - delegate)是界面之间数据传递最为常见的一个设计模式 在Co...
    庸者的救赎阅读 10,030评论 0 5
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,388评论 30 472
  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 8,655评论 0 50
  • 问题 1)柯里化,通过柯里化,改造target-action,因为selector只能使用字符串,在编译时无法发现...
    lanjing阅读 8,939评论 3 19
  • 写给自己的十句话! 01失败不可怕,可怕的是从来没有努力过,还怡然自得地安慰自己,连一点点的懊悔都被麻木所掩盖下去...
    创一学习吧阅读 3,785评论 0 0