Свифт будет устанавливать / делал назначение? - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу наблюдать за изменениями в паре свойств в моем классе, используя didSet / willSet API. Однако я хотел бы сохранить чистоту секции замедления свойств, поэтому я хочу иметь отдельные функции для реализации этой логики.

Прямо сейчас у меня есть что-то вроде этого:

var myProperty: SomeType {
    didSet {
        handleDidSetMyProperty()
    }
}

Однако это занимает 5 строк, что довольно много, если у вас есть больше таких свойств. Было бы здорово, если бы я мог ограничить это до 3, например так:

var myProperty: SomeType {
    didSet = handleDidSetMyProperty
}

Есть ли способ в Swift назначить функцию / замыкание наблюдателю свойства?

1 Ответ

0 голосов
/ 25 апреля 2018

Нет, вы не можете.См. Декларации на языке программирования Swift.

В «ГРАММАРЕ ПЕРЕМЕННОЙ ДЕКЛАРАЦИИ» вы найдете

didSet-clause → attributes<sub>­opt</sub> ­didSet­ setter-name­<sub>­opt</sub> ­­code-block­

и в «ГРАММЕРЕ БЛОКА КОДА»

code-block → {­ statements<sub>­opt</sub> }­

т.е. за ключевым словом didSet может следовать только блок кода (с обязательными фигурными скобками).

...