SwiftUI’da StateObject
ve ObservedObject
, uygulamanızda durumunuzu yönetmek için kullanılan iki farklı özelliktir. İkisi arasındaki temel fark, StateObject
‘in sadece bir View
tarafından sahip olunabilecek bir nesne olduğu, ObservedObject
‘in ise birden çok View
tarafından paylaşılabilen bir nesne olduğudur. İşlevsellikleri aynıdır, ancak kullanım durumları farklıdır.
StateObject
StateObject
, bir View
tarafından sahip olunan bir nesnedir ve bu nesnenin durumu, bu View
‘in ömrü boyunca korunur. Eğer bu nesne değişirse, SwiftUI otomatik olarak ilgili View
‘i günceller. StateObject
genellikle, o View
‘in durumunu tutmak için kullanılır.
ObservedObject
ObservedObject
, bir nesnenin durumunu gözlemlemek için kullanılır ve bu nesne birden çok View
tarafından paylaşılabilir. ObservedObject
‘in değişikliklerini takip eden her View
, otomatik olarak güncellenecektir.
Hangisini Kullanmalıyım? Seçiminiz, kullanmak istediğiniz veri akışının türüne bağlıdır:
@StateObject
: Yalnızca bir view içindeki durumu yönetmek istediğinizde kullanılır. Eğer diğer view’lerde bu nesneyi paylaşmak veya veri akışını genişletmek gerekiyorsa,@StateObject
kullanımı uygun olmayabilir.@ObservedObject
: Birden fazla view arasında paylaşılan verileri yönetmek ve view’lerin veri değişikliklerine otomatik olarak tepki göstermesini sağlamak istediğinizde tercih edilir. Uygulama düzeyinde veri akışını kolayca sağlamak için@ObservedObject
kullanmak daha uygun olabilir.