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

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

На главную

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,172 просмотров • 2 лет назад •via X (Twitter)

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

Фото профиля Maxim Bazarov
Maxim Bazarov2 лет назад

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

Фото профиля StewartLynch 🇨🇦
StewartLynch 🇨🇦2 лет назад

Thanks Maxim. Not sure how I missed that.

Фото профиля Parsa
Parsa2 лет назад

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
Igor Tarasenko2 лет назад

Expand the macro. This will help in your understanding.

Фото профиля DSWH
DSWH2 лет назад

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

Фото профиля Andres Raigoza 👨‍💻
Andres Raigoza 👨‍💻2 лет назад

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

Фото профиля DSWH
DSWH2 лет назад

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

Фото профиля DART Meadow
DART Meadow2 лет назад

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.

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