ios - 如何将 Alamofire 与 Json 字典中的数组一起使用?

标签 ios json swift dictionary alamofire

要使用 Alamofire 执行 POST 请求,我想创建一个 Json 字典,其中包含一个数组(具有 AnyObject 类型的元素)作为字典值。

但是,当我将字典定义为 [String: AnyObject] 时并尝试保存一个数组,结果为 SwiftDeferredNSArray .

var fields = [String: AnyObject]()
fields["key1"] = [1,2,3] // But this could also be an array of type Array<AnyObject>
fields["key2"] = "Foo"
print(fields) 

输出:"["key1": <_TtCs21_SwiftDeferredNSArray 0x7fdfe9f0c2d0>(\n1,\n2,\n3\n)\n, "key2": Foo]\n"

当字典值定义为 Any 类型时输出是我期望的:

var fields = [String: Any]()
fields["key1"] = [1,2,3]
fields["key2"] = "Foo"
print(fields) 

输出:"["key1": [1, 2, 3], "key2": "Foo"]\n"

不幸的是,Alamofire 似乎不接受 Any 类型的字典值:

Cannot convert value of type '[String : Any]?' to expected argument type '[String : AnyObject]?'

我应该如何将 Alamofire 与 Swift 数组的 POST 请求一起使用?

最佳答案

虽然我不知道 SwiftDeferredNSArray 输出是否是 Swift 中的错误,但在 Swift 3 中,字典值默认必须是 Any

由于 Alamofire 的 Swift 3 版本也对此进行了更新,因此 SwiftDeferredNSArray 不再出现,问题已解决。

关于ios - 如何将 Alamofire 与 Json 字典中的数组一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414475/

相关文章:

json - 如何在cloudformation中的引用参数中使用AWS主体

c# - 为数据读取器结果动态创建 JSON 对象,无论它们是什么样子?

objective-c - Hpple 实现/无法识别的选择器

c# - 使用 JavaScriptserializer 将 google places details JSON 转换为 C# 对象

ios - MR_saveToPersistentStoreAndWait 不保存数组中的数据

swift - UITableViewAutomaticDimension 不适用于 iOS 8

iOS 11 自定义导航栏中的搜索栏

ios - 具有 0 行的 UILabel 最初不显示全文

iphone - UITextField 停止 UIGestureRecognizer 工作

iphone - 缓存的 UITableView 元素