📱
【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