iOS开发iOS Developer

Swift weak delegate

2017-05-26  本文已影响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()
}

上一篇 下一篇

猜你喜欢

热点阅读