Загрузка видео...

Не удалось загрузить видео

На главную

Have you ever created a SwiftUI binding using the Binding(get:set:) initializer? If so, you may want to reconsider. To understand why, check out our newest episode clip where we show how this initializer makes it difficult for SwiftUI to track where the binding came from.

21,720 просмотров • 1 год назад •via X (Twitter)

Комментарии: 9

Фото профиля Point-Free
Point-Free1 год назад

For a high-quality version of this clip:

Фото профиля glueckkanja
glueckkanja4 лет назад

Are you searching for a simple way to deploy device certificates with #Intune? Check out SCEPman at

Фото профиля George Elsham
George Elsham1 год назад

Really interesting, thank you! Never thought about this but it makes sense. This is another reason why SwiftUI should be open source—to make debugging issues like this easier.

Фото профиля Petr Šíma
Petr Šíma1 год назад

This is great info! I never knew Binding(get:set:) is forbidden fruit, I'll need to reevaluate a lot of what Im doing. But... Won't you get further trouble if flag changes? Screenshot should be self-explanatory, lmk what you think.

Фото профиля Point-Free
Point-Free1 год назад

Sorry, I'm not sure what you are demonstrating with the screenshot. The logs printed shouldn't be surprising. The first equality should be false because the data used to derive the key path has changed. And the second equality should be true because it's the exact same key path.

Фото профиля S
S1 год назад

when do you recommend using subscript over a func?

Фото профиля Point-Free
Point-Free1 год назад

If you need a key path, which is the case for deriving bindings, then you must use a subscript because only subscripts get key paths. Methods do not.

Фото профиля phil | 🇨🇭 👨🏼‍💻📱 | 🏳️‍🌈
phil | 🇨🇭 👨🏼‍💻📱 | 🏳️‍🌈1 год назад

Does this also apply to Bindings created with that initializer that, for example, are computed var‘s on the View or some Observable object? Or only to those „ad-hoc“ ones inside a view body?

Фото профиля Point-Free
Point-Free1 год назад

Yes, ideally you wouldn't use that initializer if possible. You may not be running into any of the possible problems right now, but there's always the chance in the future things could get a little whacky.

Похожие видео