İçeriğe geç

SwiftUI ile @StateObject kullanımı

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.

Tarih:SwiftUI

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2020 Kenan Atmaca