📱
【Swift】プロパティオブザーバ:willSet と didSet
Swiftプログラミングにおいて、プロパティの値が変更される前後で特定のコードを実行するために、didSetとwillSetというプロパティオブザーバを利用できます。
プロパティオブザーバー (Property Observer) は、Swiftプログラミング言語において、プロパティの値が変更された際に特定のコードブロックを実行するための仕組みです。
プロパティオブザーバーは、プロパティの変更に関連するカスタムロジックを追加し、コードをより柔軟かつ効果的に制御するために使用されています。
本記事では、didSetとwillSetの違いについて詳しく説明します。
willSet
willSetは、プロパティの値が変更される前に実行されるプロパティオブザーバです。
willSetの主な特徴:
-
willSetブロックは、プロパティの新しい値が設定される前に実行される -
newValueという特別な名前のパラメータを介して、新しい値にアクセスできる -
newValueを変更して新しい値を設定できるが、実際のプロパティの値が変更される前の段階でのみ有効
willSetの使用例:
var someProperty: Int = 0 {
willSet {
// プロパティの値が変更される前に実行されるコード
print("プロパティの値が \(someProperty) から \(newValue) に変更されます。")
}
}
didSet
didSetは、プロパティの値が変更された後に実行されるプロパティオブザーバです。
didSetの主な特徴:
-
didSetブロックは、プロパティの値が変更された後に実行される - oldValueという特別な名前のパラメータを介して、以前の値にアクセスできる
-
didSetブロック内ではプロパティの値を変更できる
didSetの使用例:
Copy code
var someProperty: Int = 0 {
didSet {
// プロパティの値が変更された後に実行されるコード
print("プロパティの値が \(oldValue) から \(someProperty) に変更されました。")
}
}
Discussion