問題タブ [swift-structs]

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

swift - Swift UI Struct で使用できる状態変数の最大数はいくつですか?変数が増えるとパフォーマンスが低下しますか?

Swift UI Struct で使用できる状態変数の最大数はいくつですか?

また、多くの状態変数を持つと、実際にアプリの速度が低下しますか? 私は宣言型プログラミングが初めてなので、このことのスケーラビリティについて明確にする必要があります:P

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

json - 構造体を使用して Swift で Json をデコードする問題: アドバイスしてください。

Structs を使用して nfl プレーヤーの json ファイルをデコードしようとしていますが、null ではない最初のプレーヤーの PlayerID をチェックした後も失敗し続けます。何が間違っているのかわかりませんが、ガイダンスに本当に感謝しています。これを約24時間じっと見つめていたと思います。

これは JSON ファイルのサンプルです。 ここに画像の説明を入力

ここに私の構造体があります:

Jsonをデコードするために呼び出す関数は次のとおりです。

コンソールに表示されるエラーは次のとおりです。

致命的なエラー: 'try!' 式が予期せずエラーを発生させました: Swift.DecodingError.keyNotFound(CodingKeys(stringValue: "id", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "players", intValue: nil), _JSONKey(stringValue) : "インデックス 0", intValue: 0)], debugDescription: "キー CodingKeys に関連付けられた値がありません (stringValue: "id", intValue: nil) ("id").", 基本エラー: nil)): ファイル CoachesChallenge/UpdatingVC .swift、293 行目 2020-10-09 18:08:08.412910-0700 CoachesChallenge[32143:2136162] 致命的なエラー:「試してください!」式が予期せずエラーを発生させました: Swift.DecodingError.keyNotFound(CodingKeys(stringValue: "id", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "players", intValue: nil),

***どんな助けやフィードバックも大歓迎です!!!! 前もって感謝します!!!

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

swift - SwiftUI プレイグラウンドで複数のファイルを使用する

SwiftUI プレイグラウンドで複数のファイルを使用しようとしています。ソース内の別のファイルにいくつかのコードを追加しました。ボタンをタップしたときにシートビューを表示したいだけです。構造体を公開しても、「内部保護レベルのため、SecondView 初期化子にアクセスできません」というエラーが表示されます。

コードは次のとおりです。