Я преобразовываю проект в код Swift и сталкиваюсь с проблемой в сеттере. Моя Objective-C код выглядит следующим образом:Swift - Пользовательский сеттер по свойству
- (void)setDocument:(MyDocument *)document
{
if (![_document isEqual:document]) {
_document = document;
[self useDocument];
}
}
и позволил моему View Controller для запуска этого каждый раз, когда документ был установлен (обычно в prepareForSegue:
методом предлежащей View Controller).
Я нашел наблюдателей недвижимости willSet
и didSet
, но они работают только при обновлении объекта, а не при его инициализации и обновлении.
Любые идеи? Благодаря
UPDATE
после попытки GET {} и множество {} Я получаю ошибку EXC_BAD_ACCESS
var document: UIDocument? {
get {
return self.document!
}
set {
self.document = newValue
useDocument()
}
}
Не использовать наблюдатель собственности. Используйте get {} и получите {}. Ознакомьтесь с разделом «Вычислимые свойства» [здесь] (https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html). –