如何通过扩展在MyProtocol didSet上实现var

设置后,我需要运行一些特定的代码。

我尝试了这个,但是出现了这个错误:


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

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

最佳答案

从文档中:



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

10-08 15:49