- (voID)setdocument:(Mydocument *)document{ if (![_document isEqual:document]) { _document = document; [self usedocument]; }}
并允许我的VIEw Controller在每次设置文档时运行(通常在演示VIEw Controller的prepareForSegue:方法中)。
我发现属性观察者willSet和dIDSet,但它们只在属性被更新时才起作用,而不是在初始化和更新时。
有任何想法吗?谢谢
UPDATE
尝试获取{}并设置{}后,我得到EXC_BAD_ACCESS错误
var document: UIdocument? { get { return self.document! } set { self.document = newValue usedocument() }}你不能使用这样的设置,因为当你调用self.document = newValue时,你只是再次调用setter;你创建了一个无限循环。
您需要做的是创建一个单独的属性来实际存储值:
private var _document: UIdocument? = nilvar document: UIdocument? { get { return self._document } set { self._document = newValue usedocument() }}总结
以上是内存溢出为你收集整理的Swift – 属性上的定制设置器全部内容,希望文章能够帮你解决Swift – 属性上的定制设置器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)