問題タブ [property-observer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - SwiftのwillSetとdidSetの目的は何ですか?
Swift には、C# と非常によく似たプロパティ宣言構文があります。
ただし、アクションもありwillSet
ます。didSet
これらは、セッターが呼び出される前と後にそれぞれ呼び出されます。セッター内に同じコードを入れることができることを考えると、それらの目的は何ですか?
swift - プロパティ オブザーバー willSet および didSet; プロパティのゲッターとセッター
プロパティ内でこれを操作する場合、 -とwillSet
-の違いは何ですか?didSet
get
set
私の観点からは、どちらもプロパティの値を設定できます。いつ、なぜ、willSet
- didSet
、いつget
-を使用する必要がありset
ますか?
との構造は次のようにwillSet
なりdidSet
ます。
swift - 文字列変数を設定して常に小文字にするにはどうすればよいですか?
文字列変数を設定し、常に小文字にしたいと考えています。
これは私のコードです:
しかし、私がそれを使用すると、無限ループに陥ります。どうすればこの問題を解決できますか?
java - Javaには、SwiftのwillSetおよびdidSetメソッドに似たプロパティオブザーバーがありますか?
変数の値が変更されたかどうかを観察したい。Javaに SwiftのwillSet
anddidSet
メソッドに相当するものがあるかどうか疑問に思っていましたか?
ios - フレームではなく境界に対して機能するプロパティオブザーバー
私はこのプロジェクトに取り組んでおり、ストーリーボードに 1 つのシーンがあります。
シーンは TableViewController です。
テーブル ビューにはカスタム プロトタイプ セルがあります (CustomCell.swift にリンクされています)。
- プロトタイプ セル内には、ラベルとカスタム UIView (CustomView.swift にリンク) があります。これらの要素には、プロトタイプ セルの contentView に関連するレイアウトの制約があります。
ここで、ビューのサイズが変更されたときにカスタム ビューに描画されているものを変更して、デバイスが回転したときにその新しいセル幅に調整されるようにします。制約により、デバイスが回転した後に CustomCell のサイズが変更されると、CustomView のフレームが変更されます。これを検出するために、2 つのプロパティ オブザーバーを CustomView.swift に追加しました。
プロジェクトを実行しているときに、デバイスを回転させると、2 番目のオブザーバーが正常に動作します。最初の観察者はしません。私の質問は、最初のオブザーバーがフレームが変更されたことを検出しないのはなぜですか?
ios - このコードは、クリックされたときにボタンの背景色をどのように変更しますか?
この投稿から取得した次のコードは、ボタンを押すとボタンの色が変わると思われます。
しかし、「強調表示された」変数も何に対応するのだろうと思っていましたか?
次のようにプログラムでビューにボタンを追加した場合:
これをどのように動作させるのexampleButton
ですか?
swift - プロパティオブザーバーはヒットしませんが、値が変化しています
アプリ全体で変化しているように見える変数があります。最初に値をtrueに変更してから印刷すると、それがfalse、false、false、true、false、false、falseであり、観察されたプロパティがヒットしたため、「変更されました!」と表示されます。コンソールに表示されます。
ただし、後でこれを再度印刷すると、値が何も変更されていないにもかかわらず(私が見ることができる)、プロパティオブザーバーがヒットしていないにもかかわらず、falseに戻りました。「変更されました」とは出力されませんが、コンソールでは false、false、false、false、false、false、false と出力されます。
どんな助けでも大歓迎です。