作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 swift 1.2,一切正常。将我的 Xcode 升级到 7 后。我遇到了一些奇怪的问题。
我的代码是:
let postData : AnyObject = ["username":username , "password":password] ;
我需要这个变量是 AnyObject,因为
let jsonObject : AnyObject = postData ;
let jsonString = JSONStringify(jsonObject)
let data1 = jsonString.dataUsingEncoding(NSUTF8StringEncoding)
let task1 = NSURLSession.sharedSession().uploadTaskWithRequest(request, fromData: data1) {
(Data, Response, Error) -> Void in
需要一个 Anyobject 用于发布数据 header 。
错误是
Value of type '[String : String?]' does not conform to specified type 'AnyObject'
谁能帮帮我?
最佳答案
问题是你的密码变量是Optional<String>
.这意味着从 Swift 字典到 AnyObject 的转换(我认为它试图将其转换为 NSDictionary)将失败。
如果你这样做
let postData : AnyObject = ["username":username , "password":password!]
它应该可以工作,除非密码为 nil(在创建字典之前检查)
如果你想在输出中包含空密码,你可以在你的字典中这样做
let postData : [String : AnyObject] = ["username":username , "password":password ?? NSNull()]
以下作品
let pw: String? = "pw"
let pw2: String? = nil
var foo: [String : AnyObject] = ["bar" : pw ?? NSNull(), "baz" : pw2 ?? NSNull()]
let data = try NSJSONSerialization.dataWithJSONObject(foo, options: NSJSONWritingOptions.PrettyPrinted)
let str = NSString(data: data, encoding: NSUTF8StringEncoding)!
print(str)
并打印
{
"baz" : null,
"bar" : "pw"
}
关于 swift 2 : How can i assign a dictionary to AnyObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32860453/
我是一名优秀的程序员,十分优秀!