問題タブ [property-wrapper]

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 に答える
244 参照

foreach - SwiftUI リストで .focusedValue を使用する方法

ForEach で選択した要素に関連付けられたデータを画面上の別のビューと共有できるようにするブログ投稿の例を採用しました。FocusedValueKey適合性を設定します。

次に、ボタンを含む ForEach ビューがあり、フォーカスされたボタンは.focusedValue修飾子を使用して値を NotePreview に設定します。

これは ForEach では正常に機能しますが、ForEach を List に置き換えると機能しなくなります。これを List で動作させるにはどうすればよいですか? また、すぐに使用できないのはなぜですか?

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

ios - アトミック プロパティ ラッパーは、構造体ではなくクラスとして宣言されている場合にのみ機能します

Swift には ObjC のatomicプロパティ属性がないため、Swift クラス用に Swift で「ロック」とそのロックを使用するアトミック プロパティ ラッパーを作成しました。

スレッド サニタイザーを有効にしてテストを実行すると、Atomic プロパティ ラッパーを使用するプロパティでデータ競合が常にキャプチャされます。

機能した唯一のことは、プロパティ ラッパーの宣言を構造体ではなくクラスに変更することでした。ここでの主な問題は、なぜ機能するのかということです。

プロパティ ラッパーに sを追加し、作成されたオブジェクトの数を追跡するために s をprintロックinitしました。構造体/クラスと同じで、別のプロジェクトで問題を再現しようとしましたが、うまくいきませんでした。しかし、問題に似たファイルを追加し、それが機能する理由の推測をお知らせします.

ロック

アトミック プロパティ ラッパー

モデル (ここのプロパティでデータ競合が発生するはずです)publicVariable2

更新 1: 完全な Xcode プロジェクト: https://drive.google.com/file/d/1IfAsOdHKOqfuOp-pSlP75FLF32iVraru/view?usp=sharing

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

swift - プロパティ タイプ 'MyViewModel' は、そのラッパー タイプの 'wrappedValue' プロパティのタイプと一致しません

暗黙的にラップ解除されたオプショナルを処理しないように、プロパティ ラッパーがあります。

カスタムラッパーを使用して弱いプロパティを処理しようとする場合を除いて、うまく機能します。

次のプロトコルがあると仮定します。

次のようになります。

しかし、プロパティ ラッパーを使用すると、次のようになります。

「プロパティ タイプ 'MyViewModel は、そのラッパー タイプ 'WeakMaybeUninitialized' の 'wrappedValue' プロパティのものと一致しません」というエラーが返されます

MyViewModel は実際には AnyObject に準拠していますが、何が起こるかわかりません。

理由はわかりますか?

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

swift - @StateObject と ObservableObject をどこで使用しますか?

私はswiftUIを学んでおり、 @StateObject と @ObservableObject をいつ使用するか、どこで使用するかについて混乱しています。