Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

I have come across something with the Observation framework that is confusing me so if there are any #SwiftUI Observation framework experts out there that can explain this to me, I would be forever grateful. Why I don’t have to define the object as a State object?

10,171 görüntüleme • 2 yıl önce •via X (Twitter)

8 Yorum

Maxim Bazarov profil fotoğrafı
Maxim Bazarov2 yıl önce

That’s because SwiftUI automatically tracks any observable properties that a view’s body reads directly.

StewartLynch 🇨🇦 profil fotoğrafı
StewartLynch 🇨🇦2 yıl önce

Thanks Maxim. Not sure how I missed that.

Parsa profil fotoğrafı
Parsa2 yıl önce

The first code's equivalent with the old combine stuff is marking the MyObject as an ObservedObject. This binds it to the lifecycle of the struct, meaning that the property changes retrigger the body, and any re-invocation of the ContentView itself would create a new MyObject. It's due to how the new Observable grabs references of the component that is listening to a certain keypath (\.value in this case) and notifies them of the change.

Igor Tarasenko profil fotoğrafı
Igor Tarasenko2 yıl önce

Expand the macro. This will help in your understanding.

DSWH profil fotoğrafı
DSWH2 yıl önce

The macro sets state. The protocol expects you to set state

Andres Raigoza 👨‍💻 profil fotoğrafı
Andres Raigoza 👨‍💻2 yıl önce

This shows how efficient the macro is compared to ObservableObject, it runs the body but it doesn’t recreate the View

DSWH profil fotoğrafı
DSWH2 yıl önce

The macro is new. I’m still working on a m1 :(. Older Xcode.

DART Meadow profil fotoğrafı
DART Meadow2 yıl önce

I think the increment operator syntax: += , is colliding -for itself as a variable in the production code below the observable code block, you might need additional syntax for the observable API.

Benzer Videolar