Swift weak delegate

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()
}

推荐阅读更多精彩内容

  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 2,672评论 3 25
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 26,771评论 30 472
  • 对于去外地求学的学子来说,回家从来就不是一件容易的事。千重山万重水路远,抢票收拾告别不易,汽车火车飞机劳顿,...
    拥抱阳光0阅读 528评论 0 0
  • 1.了解小程序 12月28日,广州,在2017年微信公开课上,腾讯公司高级副总裁、微信之父张小龙介绍了关于微信小程...
    羞羞的麦穗阅读 169评论 0 0
  • 脱去锦缎袍, 重披棉褛衣。 寒雨褪秋色, 庐州浸冬凉。 但见白霜起, 不闻翠鸟鸣。 今冬雪先到, 开春花更香。
    伥鬼Simon阅读 133评论 0 0