Лучший способ / как «потрогать» ленивого вар? - PullRequest
0 голосов
/ 27 сентября 2019

В пользовательских представлениях

class Blah: UIView {

вы используете простые ленивые переменные для новых слоев

private lazy var bell: CALayer = { ...
}()

, а затем обычно, скажем,

override func layoutSubviews() {
    .. whatever
    bell.frame = whatever
    donger.frame = whatever
    border.frame = whatever
}

Все СОП.

Однако я просто работал над классом, в котором

private lazy var dot: CALayer = { ...
   as it happens, the frame is fixed
   nothing else is ever changed
}()

Я вдруг понял, что ленивый var "точка" никогда не "трогается"!

Так что он никогда не появляется!

Вы можете сделать это,

let _ = dot

, не беспокойтесь, но какой синтаксис лучший, лучший способ «дотронуться» до ленивого var в Swift?

Я никогда не думал об этом раньше!

1 Ответ

1 голос
/ 28 сентября 2019

Более короткий (если это то, что вы подразумеваете под "лучшим") способ сделать это -

_ = dot

Это синтаксис, который вы используете для отбрасывания значения, которое вам не нужно.Вы, вероятно, видели, как это использовалось для отбрасывания возвращаемого значения вызова функции:

_ = functionWithSideEffects()
...