Swift’te “Property observers” (özellik gözlemcileri), bir özelliğin değeri değiştiğinde gerçekleştirilmesi gereken ek işlevleri tanımlamak için kullanılır. Bu gözlemciler, bir özellik değeri değişmeden hemen önce veya hemen sonra tetiklenen işlevleri belirlemek için kullanılır. İki tür gözlemci bulunur: willSet
ve didSet
.
willSet
: Bir özellik değeri değişmeden hemen önce çalışır ve önceki değeri temsil eden bir değişken (willSet
) sağlar.didSet
: Bir özellik değeri değiştikten hemen sonra çalışır ve yeni değeri temsil eden bir değişken (didSet
) sağlar.
Örnek Kod Bloğu:
//
// Product.swift
//
// Created by Fatih Durmaz on 30.10.2023.
//
class Product {
var name: String = "Süpürge" {
willSet {
print("Şu anki Ürün adı \(name). Yeni adı: \(newValue) olarak değişecek.")
}
didSet {
print("Ürün adı \(name) olarak değiştirildi. Eski ürün adı \(oldValue)")
}
}
}
let product = Product()
product.name = "Telefon"
Yukarıdaki örnek, Product
sınıfında name
adında bir özellik oluşturur. willSet
ve didSet
gözlemcilerini kullanarak, name
özelliğinin değeri değişmeden önce ve sonra ne olacağını belirler.
name
özelliği değiştiğinde, eski ve yeni değerleri konsola yazdırır.
Bu özellik gözlemcileri, özellik değerlerinin değişimini izlemek, geçerli değerler üzerinde işlemler yapmak veya bir değer değişmeden önce veya sonra ekstra işlevsellik eklemek için oldukça kullanışlıdır.
Not: Computed property ile karıştırılmamalıdır. Bu iki özellik, değerlerin elde edilmesi ve değişikliklerinin izlenmesi için farklı amaçlarla kullanılır. Computed property ile değer değiştirilebilir, Property observers ise değeri değiştiremez, sadece değer değişikliklerini izlemek için kullanılır.