問題タブ [swift-dictionary]
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 - キーと値の制約による辞書の拡張
辞書を拡張し、型の値を持つ NSDate の特定のキー型に制約したいArray<MyClass>
MyClass は、サブクラスのない迅速なクラスです。
上記のコードはビルド エラーを返します。
非プロトコル型「配列」に制限された型「値」
わかりましたので、特定のプロトコルに制約する必要があるようですが、奇妙なことに、値を次のように制約すると十分です。
拡張ディクショナリ、キー: NSDate、値: MyClass
コンパイラは文句を言わず、ビルドは成功します。しかし MyClass はプロトコルではありません。それで、何が得られますか?
私はそれを次のように制限することができました:
ただし、count プロパティを整数形式で取得する必要があるため、これには強制キャストが必要です。
では、 [MyClass] の値の型に明示的に制約できないのはなぜですか?
json - Swift で JSON 用に複雑な多次元辞書を動的に組み立てる
次のような複雑な JSON を動的に組み立てようとしています。
つまり、 and をアセンブルするためにループする必要がある構造体の配列がありAddress
ます。これがディクショナリであることが望ましいのですが、代わりにオブジェクトをアセンブルするために使用することもできます。relationships
included
SwiftyJSON
JSON
私がこれを自分でやろうとしたとき、私はコンパイラからのあいまいさに関する問題を抱え続けていたので、正直なところ、この問題に取り組む方法がわかりません. 私は動的プログラミング言語から来ているので、これには一般的に困惑しています。
arrays - Swift 辞書拡張機能の配列 sortInPlace
Swift 2.1 を使用して、辞書の配列をキー dateKey の日付値でソートする関数を作成しようとしています。
これを Array 型の拡張として追加したいので、次を使用して呼び出すことができますsomeArray.sortDictionariesByDate(dateKey: String, dateFormatter: NSDateFormatter)
これは、辞書の型が である限り問題なく動作しますが[String: AnyObject]
、型の辞書で使用すると、にキャストできないため機能し[String: String]
ません。これは がではないためだと思います。代わりに要素を型キャストしようとしましたが、型または型の辞書を使用しても機能しません。String
AnyObject
String
Struct
Class
[String: Any]
[String: AnyObject]
[String: String]
キーの型String
と任意の値の型 (など) を持つ辞書をサポートするために使用できるキャストString
、AnyObject
または完全にキャストを回避するために拡張機能に追加できる where 句またはプロトコルの適合性はありますか?
編集:リクエストごとに2つの例の配列を次に示します
swift - Swift 辞書のキーの種類
CatHelper と DogHelper の 2 つのクラスがあります。どちらも DataHelper から継承され、クラス関数のみが含まれています。
タイプ [DataHelper : [String]] の辞書が必要です
そのために、DataHelper を Hashable + Equatable に準拠させました
しかし、そのような辞書をインスタンス化するのは困難です。これが私がこれまでに試したことです
しかし、コンパイラは「CatHelper.Type 型の値を DataHelper 型の予想される辞書キーに変換できません」と表示します。
編集 :
次に、この辞書を反復して実行したいと思います。この例では
この場合、クラス関数のみを使用しているため、CatHelper または DogHelper のインスタンスを持つことは役に立ちません。
swift - 物理ボディ ビットマスク システムのこの Swift SpriteKit サンプル コードを解釈する方法
Apple の SpriteKit と GameplayKit のサンプル コードを詳しく調べていたところ、Swift で記述された「DemoBots」というプロジェクトが見つかりました。そのプロジェクトで使用されている非常に興味深い概念がいくつかあり、それらを自分のプロジェクトに適用したいと考えていました。
私はすでに、衝突処理をハンドラー クラスにカプセル化する作業を行っていました。これは、そのサンプル コードで衝突が処理される方法と非常によく似ています。
このプロジェクトでは、 という構造体の次のコードを見つけましたRPColliderType
。
この構造体は、次のように.collisionBitmask
//プロパティを設定するたびに使用されます: (コンポーネントとエンティティの設計ガイドを使用してこれを実装しました).contactBitmask
.categoryBitmask
SKPhysicsBody
ここまでは順調ですね。Objective-C から来た私の問題は、RPColliderType Struct からの次のコード行が何をするのかを完全に理解していないことです。
それは、計算されたプロパティを呼び出すたびに(それはswiftで呼び出されますよね?)プロパティを呼び出すたびに-に割り当てるときにこれを行います-SKPhysicsBody
これをそれらの静的クラス辞書に追加します。mask
しかし、' ' / ' reduce
' / ' union
' コマンドの解釈に問題があります。
それは本当に何をしますか?
ios - Swiftの辞書を関連する型にキャストする方法は?
これは私が辞書でやろうとしていることです:
これは、サーバーからの JSON 応答の一部として、キャストしようとしているものです。
コメント行にエラーがあるため、機能しません。
タイプ 'NSTaggedPointerString' (0x1a1e3af20) の値を 'NSNumber' (0x1a1e458b0) にキャストできませんでした。
swift - Swift で辞書エントリのインデックスを検索する
辞書のエントリのインデックスを見つけようとしています。私の辞書は次のとおりです。
indexOf を使用しようとしましたが、機能しません。私のコードは次のとおりです。
swift - 「複雑な」辞書に新しいエントリを追加する
新しいエントリを追加しようとしている、より「複雑な」辞書があります。辞書コードは次のとおりです。
このコードで新しいエントリを追加しようとしました:
しかし、「致命的なエラー: 配列インデックスが範囲外です」というメッセージが表示されました。いくつかの例を見ましたが、すべてがより単純な辞書を扱っているようです。私は何が欠けていますか?
arrays - タイプ '[[String : AnyObject]]' の値をタイプ '[[String : AnyObject?]]' に代入できません
次のエラーが表示されます。
タイプ '[[String : AnyObject]]' の値をタイプ '[[String : AnyObject?]]' に代入できません
この割り当てが以前に機能していたのは奇妙ですが、Xcode を再起動すると、このエラーが発生し始めました。私がオンラインで読んだことから、これでエラーが発生することはありません。
これが私のコードです: