問題タブ [didset]

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 投票する
0 に答える
23 参照

swift - プロパティオブザーバーはヒットしませんが、値が変化しています

アプリ全体で変化しているように見える変数があります。最初に値をtrueに変更してから印刷すると、それがfalse、false、false、true、false、false、falseであり、観察されたプロパティがヒットしたため、「変更されました!」と表示されます。コンソールに表示されます。

ただし、後でこれを再度印刷すると、値が何も変更されていないにもかかわらず(私が見ることができる)、プロパティオブザーバーがヒットしていないにもかかわらず、falseに戻りました。「変更されました」とは出力されませんが、コンソールでは false、false、false、false、false、false、false と出力されます。

どんな助けでも大歓迎です。

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

swift - Swiftでは、didSet内のプロパティをリセットすると、別のdidSetがトリガーされますか?

これをテストしていますが、 内で値を変更すると、didSet別の呼び出しが行われないようdidSetです。

これに頼ってもいいですか?それはどこかに文書化されていますか?Swift プログラミング言語のドキュメントには表示されません。

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

properties - KotlinにdidSet/willSetアナログはありますか?

私はこの Swift 構文が大好きです。多くのことに非常に役立ちます。

Kotlinでこれをやりたいです。しかし、適切な構文が見つかりません!

Kotlin にこのようなものはありますか?

0 投票する
4 に答える
3621 参照

swift - プロパティ値を変更せずに didSet を呼び出す方法

didSetプロパティの値を変更せずにコードを実行する必要があります。

最近Objective-Cから来て、setMyProperty().

だから私は試しました:

エラーになりますAssigning a property to itself

myPropertyたまたま、CGFloat私はできる:

これはトリガーdidSetされ、値には影響しませんが、ここで何をしようとしているのかを示していません。

didSetより明確で直接的な方法で呼び出す方法はありますか?

0 投票する
4 に答える
602 参照

swift - Swift didSet が起動しない

id、name、isEnabled の 3 つのプロパティを持つクラス ExerciseSet があるとします。

私はこのクラスのオブジェクトの配列を持っています:

コードのどこかで、次のことを行います。

ただし、この場合、didSet は起動しません。私がこのように書いた場合にのみ:

なぜそうなのですか?どうにかして前者のオプションを使用できますか? 後者は冗長に思えますが、私はそれが嫌いです。

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

swift - 内部の didSet 保護は、奇妙にクラス全体に拡張されていますか?

もちろん、didSet が didSet 内から同じオブジェクトに対して再度実行されることはないことはよく知られています。(。)

でも。どうやら:制限はそのオブジェクトだけでなく、同じクラスのオブジェクトにも適用される可能性があります。

Playground のコピー アンド ペースト テスト ケースを次に示します。

動作しません!

動作しません!

  1. これは Swift のバグですか?

  2. そうでない場合、実際の制限は何ですか? didSet? から始まる didSet は実行されません。同じ同一クラス?; 同じスーパークラス?; また?

  3. これはドコのどこに具体的に説明されていますか?

なんてこった。知る必要があります...具体的には実際の制限は何ですか?