Merhabalar bu yazımda SwiftUI yeni sürümü ile aramıza katılan @StateObject property kullanımından bahsedeceğim.
SwiftUI içerisinde bir çok farklı data sarmalayıcı property wrapper bulunmakta. Örneğin @EnvironmentObject, @ObservedObject gibi. Bunların her biri data tutmak ve sayfalar arası data aktarımı işlevlerinde duruma göre bellek yönetimi olarak farklılıklar gösterebilir. Aramıza yeni katılan @StateObject, ObservableObject protokolüne uyan ve SwiftUI çerçevesinin dahili belleğinde saklayan bir sınıf örneğini başlatan yeni özellik sarmalayıcıdır.
SwiftUI @StateObject nesnesini yalnızca bir kez oluşturur ve görünüm yaşam döngüsünün dışında tutar ve verileri özel çerçeve belleğinde saklayacaktır.
Aşağıda kullanımını görebilirsiniz.
class Web: ObservableObject { var link = "kenanatmaca.com" } struct ContentView: View { @StateObject var web = Web() var body: some View { Text("Link: \(web.link)") } }
Aynı örneği @ObservableObject wrapper ilede yapabiliriz ancak bazı durumlarda nesneyi serbest bıraktığı için crash sorunları yaşanabilmekte. Güvenli ve korunaklı bir şekilde nesne taşımak ve kullanmak için @StateObject iyi bir yol olarak görünmekte.
İlk Yorumu Siz Yapın