Swift weak delegate

作者: 波波熊洛夫 | 来源:发表于2017-05-26 09:51 被阅读26次
protocol MyClassDelegate {
    func method()
}

class MyClass {
    weak var delegate: MyClassDelegate?
}

需要使用delgate时,为了防止循环引用需要添加weak关键字,但是上面的代码XCode会报错。因为swift里delegate除了给class对象使用,也可以给struct使用,而struct对象是用copy方式不是引用计数来管理对象生命周期的。所以需要指定delegate只能被class对象实现,需添加class关键字。

protocol MyClassDelegate: class {
    func method()
}

相关文章

  • delegate

    Swift的delegate 用weak修改的时候的注意事项Swift-代理

  • Swift weak delegate

    需要使用delgate时,为了防止循环引用需要添加weak关键字,但是上面的代码XCode会报错。因为swift里...

  • ios 日常总结

    一 : Delegate weak/strong

  • weak delegate

    delegate委托模式是一种常用的设计模式 ,我们通常将声明为delegate属性指定为weak,在这个dele...

  • Swift的代理delegate

    在Swift实际开发中,很容易在声明delegate时忽略掉使用weak,这是一个比较严重的问题。现对delega...

  • IOS

    一、Delegate为什么要用weak或者assign修饰,不能用strong?说明:weak、assign修饰的...

  • iOS 关于 delegate 修饰词的错误认知

    不是所有的 delegate 都必须使用 weak 的,他是可以使用 strong 的 对于 delegate 很...

  • 读书笔记: swift tips weak delegate

    关于delegate的使用 在ARC模式下,使用delegate的时候,为了避免循环引用,我们常常会采用weak ...

  • 修饰关键字的选择问题

    1.代理用nonatomic, weak修饰weak:指明该对象并不负责保持delegate这个对象,delega...

  • iOS delegate weak

    weak指针主要用于“父-子”关系,父亲拥有一个儿子的strong指针,因此是儿子的所有者;但是为了阻止所有权回环...

网友评论

    本文标题:Swift weak delegate

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