RESOLVED! См. Решение внизу этого сообщения.Как добавить массив <String> в словарь <String, AnyObject> в Swift 2
Я пытаюсь создать объект JSON для использования на моем бэкэнд, используя Alamofire. Я могу добавить ключ со значением 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)")
}
}
}
Спасибо за ответ. Это решает проблему с массивом, но мне также нужно передать значение String в словарь в строке 'someDictionary [" answer "] = textFields [0] .text'. Есть ли способ разрешить использование строк и массивов в словаре? EDIT: после тестирования вашего решения Кажется, что запрос Alamofire нужен тип Dictionary –
В этом случае я предлагаю вам использовать NSMutableDictionary вместо использования Swift Dictionary. – user3815344
@JeffA Я изменил свой ответ на использование NSMutableDictionary вместо быстрого словаря. Взгляни. – user3815344