Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

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 Aufrufe • vor 1 Jahr •via X (Twitter)

9 Kommentare

Profilbild von Point-Free
Point-Freevor 1 Jahr

For a high-quality version of this clip:

Profilbild von glueckkanja
glueckkanjavor 4 Jahren

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

Profilbild von George Elsham
George Elshamvor 1 Jahr

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.

Profilbild von Petr Šíma
Petr Šímavor 1 Jahr

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.

Profilbild von Point-Free
Point-Freevor 1 Jahr

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.

Profilbild von S
Svor 1 Jahr

when do you recommend using subscript over a func?

Profilbild von Point-Free
Point-Freevor 1 Jahr

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.

Profilbild von phil | 🇨🇭 👨🏼‍💻📱 | 🏳️‍🌈
phil | 🇨🇭 👨🏼‍💻📱 | 🏳️‍🌈vor 1 Jahr

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?

Profilbild von Point-Free
Point-Freevor 1 Jahr

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.

Ähnliche Videos