3
解決済み!この記事の末尾にあるソリューションを参照してください。Swift 2のDictionary <String、AnyObject>に配列<String>を追加する方法
Alamofireを使用してバックエンドに使用するJSONオブジェクトを作成しようとしています。 String値を持つキーを追加できますが、Arrayの値をAnyObjectに追加できないようです。私は非常にまっすぐ進むだろうが、私は解決策を見つけることができませんでした。
func someFunction(btn: UIButton){
var someDictionary = Dictionary<String, AnyObject>()
let someArray = [textField[1].text,textField[2].text,textField[3].text]
someDictionary["answer"] = textField[0].text
someDictionary["options"] = someArray as? Array // <---- Can't be assigned to AnyObject
let url = "http://localhost:3000/api/question"
Alamofire.request(.POST, url, parameters: someDictionary).responseJSON { response in
if let JSON = response.result.value as? Dictionary<String, AnyObject>{
}
}
}
はソリューション:as? Array
を削除し、プロジェクトをきれいにして、再度実行して初期化されたアレイ
func someFunction(btn: UIButton){
var someDictionary = Dictionary<String, AnyObject>()
var SomeArray = [String]()
for i in 1...3{ //created loop to append the textField text
SomeArray.append(textField[i].text!)
}
someDictionary["answer"] = textField[0].text
someDictionary["options"] = SomeArray // Removed "as? Array"
let url = "http://localhost:3000/api/question"
Alamofire.request(.POST, url, parameters: someDictionary).responseJSON { response in
if let JSON = response.result.value as? Dictionary<String, AnyObject>{
print("JSON Response From Server-->\(JSON)")
}
}
}
お返事ありがとうございます。これは配列の問題を解決しますが、 'someDictionary [" answer "] = textFields [0] .text'行で文字列値を辞書に渡す必要もあります。辞書に文字列と配列の両方を許可する方法はありますか?編集:あなたのソリューションをテストした後Alamofireの要求は、タイプ辞書 –
必要があるようです。その場合は、swift辞書を使用する代わりにNSMutableDictionaryを使用することをお勧めします。 – user3815344
@JeffA swift辞書の代わりにNSMutableDictionaryを使用するように答えを変更しました。見てみましょう。 – user3815344