gpt4 book ai didi

swift 2 : How can i assign a dictionary to AnyObject?

转载 作者:行者123 更新时间:2023-11-28 13:05:35 25 4
gpt4 key购买 nike

我使用的是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com