Swift:协议默认实现 - didSet

时间:2016-04-24 00:29:22

标签: ios xcode swift

如何将默认实施 didSet 设置为协议 var 我试试,但我有错误

  

扩展程序可能不包含存储的属性

protocol MyProtocol {
    var contact: MyContact? { get set }
}

extension MyProtocol {
    var contact: MyContact? {
        didSet {
            // some code
        }
    }
}

1 个答案:

答案 0 :(得分:2)

来自文档:

  

扩展可以添加新的计算属性,但不能添加存储的属性,也不能将属性观察器添加到现有属性。

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html#//apple_ref/doc/uid/TP40014097-CH24-ID151

如果要设置默认值contact,则必须是计算属性。

extension MyProtocol {
  var contact: MyContact? {
    return MyContact()
  }
}