【问题标题】:'NSInvalidArgumentException', reason: 'Invalid type in JSON write (_SwiftValue)' with alamofire swift3'NSInvalidArgumentException',原因:'JSON 写入(_SwiftValue)中的类型无效'与 alamofire swift3
【发布时间】:2017-03-12 14:59:01
【问题描述】:
我在使用 XCode8 上传 Swift3 时遇到以下错误。
'NSInvalidArgumentException',原因:'JSON 写入中的类型无效
(_SwiftValue)'
let param: Parameters = [
"email":txrNRC.text as AnyObject,
"password":txtPassword.text as AnyObject
]
请告诉我如何解决该问题。我已经尝试过let param: NSDictionary,但得到了同样的错误信息。
【问题讨论】:
标签:
json
swift
swift3
alamofire
xcode8
【解决方案1】:
首先,在 Swift 3 中,id 的 Objective-C 等效项是 Any 而不是 AnyObject,这也避免了 AnyObject 的强制转换。
错误信息表示使用了非法类型(Parameters),JSON仅支持string、number、<null>和array/dictionary。
在您的情况下,字典是 [String:String],根本不需要类型注释
let param = [
"email" : txrNRC.text,
"password" : txtPassword.text
]
如果txrNRC 和txtPassword 是可选项,则需要解包它们,或者如果值为nil,则使用nil 合并运算符分配占位符