Swift辞書にnil値を追加する方法は?
質問
私のアプリでサーバーにリクエストを行い、以下のようなデータを投稿しました。サーバー側では、すべてのパラメータがnilであっても待機しています。しかし、私は辞書にnil値を追加することができませんでした。
var postDict = Dictionary<String,AnyObject>
postDict[pass]=123
postDict[name]="ali"
postDict[surname]=nil // dictionary still has only pass and name variables.
辞書にnil値を追加する方法はありますか?
どのように解決するのですか?
どのように追加する
nil
の値をSwift辞書に追加する方法は?
基本的に、辞書に他の値を追加するのと同じ方法です。最初に、値を保持することができる値の型を持つ辞書が必要です。型は
AnyObject
は値を持つことができません。
nil
. ですから
[String : AnyObject]
を持つことはできません。
nil
.
のように、値の型がオプショナルな辞書があったとします。
[String : AnyObject?]
のような値型を持つ辞書があった場合、その辞書は
nil
の値を保持することができます。例えば
let x : [String : AnyObject?] = ["foo" : nil]
要素を割り当てるために添え字構文を使用したい場合、それは少し厄介です。型の添え字は
[K:V]
は、タイプ
V?
. オプショナルは,取り出すときに,そのキーに対応するエントリがあるかどうか,ある場合はその値を示すためのものです.
nil
).
つまり、この辞書の型は
[String : AnyObject?]
の場合、添え字はタイプ
AnyObject??
. ここでも、添え字に値を入れると、"outer" オプションで値の設定やエントリの削除ができるようになります。もし、単に
x["foo"] = nil
とすると、コンパイラはそれを
nil
という型の
AnyObject??
のエントリを削除することを意味します。
"foo"
.
を行うためには
を設定します。
の値は、キー
"foo"
を
AnyObject?
値
nil
を渡す必要があります。
nil
外側オプショナルで、内側オプショナル (型は
AnyObject?
のタイプ)を含む。
nil
. これを実現するためには
let v : AnyObject? = nil
x["foo"] = v
または
x["foo"] = nil as AnyObject?
を示すものはすべて
nil
の
AnyObject?
であって
AnyObject??
.
関連
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] 辞書から要素を削除する
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] SwiftUIでリストの背景色を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Swift 3でカスタム通知を作成するには?
-
[解決済み] swiftで改行なしの印刷をする
-
[解決済み] Swift: PREPROCESSORフラグ(`#if DEBUG`など)を使ってAPIキーを実装する方法とは?
-
[解決済み] 小数点以下2桁に切り上げ
-
[解決済み] Swift で UIViewController のサブクラス用のカスタムイニシャライザを作るには?
-
[解決済み] Objective-CフレームワークをSwiftプロジェクトにインポートする際、Bridging Headerで「ファイルが見つかりません」と表示される。
-
[解決済み] コマンドラインアプリケーションでのキーボードからの入力
-
[解決済み] Swiftの関数パラメータとしてのプロトコルに準拠したクラス
-
[解決済み] Swiftによる文字列中の部分文字列のインデックス
-
[解決済み] Swift 3.0 でコンパイルしたモジュールを Swift 3.0.1 でインポートできない。