問題タブ [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.
swift - プロパティオブザーバーはヒットしませんが、値が変化しています
アプリ全体で変化しているように見える変数があります。最初に値をtrueに変更してから印刷すると、それがfalse、false、false、true、false、false、falseであり、観察されたプロパティがヒットしたため、「変更されました!」と表示されます。コンソールに表示されます。
ただし、後でこれを再度印刷すると、値が何も変更されていないにもかかわらず(私が見ることができる)、プロパティオブザーバーがヒットしていないにもかかわらず、falseに戻りました。「変更されました」とは出力されませんが、コンソールでは false、false、false、false、false、false、false と出力されます。
どんな助けでも大歓迎です。
swift - Swiftでは、didSet内のプロパティをリセットすると、別のdidSetがトリガーされますか?
これをテストしていますが、 内で値を変更すると、didSet
別の呼び出しが行われないようdidSet
です。
これに頼ってもいいですか?それはどこかに文書化されていますか?Swift プログラミング言語のドキュメントには表示されません。
swift - プロパティ値を変更せずに didSet を呼び出す方法
didSet
プロパティの値を変更せずにコードを実行する必要があります。
最近Objective-Cから来て、setMyProperty()
.
だから私は試しました:
エラーになりますAssigning a property to itself
。
myProperty
たまたま、CGFloat
私はできる:
これはトリガーdidSet
され、値には影響しませんが、ここで何をしようとしているのかを示していません。
didSet
より明確で直接的な方法で呼び出す方法はありますか?
swift - Swift didSet が起動しない
id、name、isEnabled の 3 つのプロパティを持つクラス ExerciseSet があるとします。
私はこのクラスのオブジェクトの配列を持っています:
コードのどこかで、次のことを行います。
ただし、この場合、didSet は起動しません。私がこのように書いた場合にのみ:
なぜそうなのですか?どうにかして前者のオプションを使用できますか? 後者は冗長に思えますが、私はそれが嫌いです。
swift - 内部の didSet 保護は、奇妙にクラス全体に拡張されていますか?
もちろん、didSet が didSet 内から同じオブジェクトに対して再度実行されることはないことはよく知られています。(例。)
でも。どうやら:制限はそのオブジェクトだけでなく、同じクラスのオブジェクトにも適用される可能性があります。
Playground のコピー アンド ペースト テスト ケースを次に示します。
動作しません!
動作しません!
これは Swift のバグですか?
そうでない場合、実際の制限は何ですか? didSet? から始まる didSet は実行されません。同じ同一クラス?; 同じスーパークラス?; また?
これはドコのどこに具体的に説明されていますか?
なんてこった。知る必要があります...具体的には実際の制限は何ですか?