問題タブ [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.

0 投票する
3 に答える
302 参照

swift - 新しいオブジェクトで構造体がプロパティ オブザーバーを呼び出さない

property observersこのコードでは、新しいオブジェクトが作成されたときに呼び出されるようにしたいと考えています。どうすればこれを達成できますか?

これが私がこれまでに持っているものです:

0 投票する
2 に答える
926 参照

swift - Swift プロトコルのデフォルト変数ロジック

私はプロトコルを持っています

そして拡張子:

  • valueがのとき、呼ばれtrueたいfoo()
  • valueがのとき、呼ばれfalseたいbar()

didSet{ }ただし、準拠するすべてのクラスにロジックを冗長に実装したくありません。Example

しかし、didSet{ }拡張機能にロジックを追加しようとすると、Xcode は「拡張機能に格納されたプロパティを含めることはできません」と表示します。

すべての準拠クラスにコピー/貼り付けする必要なく、デフォルトのプロパティ監視ロジックを追加するためのベスト プラクティスは何ですか?

目標:

のサブクラスをUIViewプロトコルに準拠させたいExpandable。私のプロトコルの要件は、、、isExpanded: Boolおよびexpand()ですcollapseisExpanded = trueを呼び出してexpand()isExpanded = false呼び出したいcollapse()(設定の動作とよく似ていますisHidden)。しかし、UIView のすべてのサブクラスについて、ロジックを書き直す必要はありません。Expandableクラスを に準拠させて、すぐに設定に飛び込みたいと思いますisExpanded

0 投票する
1 に答える
564 参照

swift - deinit で didSet を使用できますか?

クラスにタイマーの変数を追加し、その didSet オブザーバーを使用して古い値を無効にしました

クラスが初期化解除されたときにタイマーを無効にするのにこれで十分だと思いましたが、didSetが呼び出されていないようです。何故ですか?オブザーバーは初期化解除中に機能していませんか?

0 投票する
1 に答える
350 参照

ios - Swift でのプロパティ オブザーバーの作成

Property Observers変数値が変更されたときに UI とオブジェクトを操作するために使用しています。それを念頭に置いて、独自のオブジェクトdidSetなどの独自のプロパティ オブザーバーを作成できるかどうか疑問に思っていました。willSet私が探しているのは、次のようなものを書くことができることです:

ご存じのとおり、配列に要素を追加するなどの追跡はdidSet行いwillSetませんが、配列値全体の変更を追跡します。プロパティオブザーバーを使用してそれを拡張することを楽しみにしています。クロージャーとプロパティに関するドキュメントを調べましたが、ヒントが見つかりませんでした。

私の質問は、プロパティ オブザーバーを作成するにはどうすればよいですか? 上記のユースケースの 1 つを例として挙げましたが、独自のオブザーバーを作成することを目指しています。

0 投票する
0 に答える
73 参照

swift - UILabel didSet attributedText が text:didSet に設定された後に呼び出されない

UILabel のサブクラスで、テキストにフォーマットを追加し、次の方法で attributedText を設定します

コードもいくつかありましattributedText - didSet:たが、これはテキストを設定した後に呼び出されません。理由がわかりません。何か足りないものはありますか?