【发布时间】:2014-09-13 23:13:48
【问题描述】:
我正在将一个项目转换为 Swift 代码,但在 setter 中遇到了问题。我的 Objective-C 代码如下所示:
- (void)setDocument:(MyDocument *)document
{
if (![_document isEqual:document]) {
_document = document;
[self useDocument];
}
}
并允许我的视图控制器在每次设置文档时运行它(通常在呈现视图控制器的 prepareForSegue: 方法中)。
我找到了属性观察器willSet 和didSet,但它们只在属性更新时工作,而不是在初始化和更新时。
有什么想法吗?谢谢
更新
在尝试 get{} 和 set{} 后,我收到了 EXC_BAD_ACCESS 错误
var document: UIDocument? {
get {
return self.document!
}
set {
self.document = newValue
useDocument()
}
}
【问题讨论】:
-
不要使用属性观察者。使用获取 { } 并获取 { }。查看计算属性部分here。