gpt4 book ai didi

ios - 如何将 swift Dictionary 转换为 NSDictionary

转载 作者:IT王子 更新时间:2023-10-29 05:33:51 34 4
gpt4 key购买 nike

我正在尝试将 [String : String](Swift 字典)转换为 NSDictionary,以便稍后在生成字符串的 JSON 库上使用

var parcelDict = ["trackingNumber" : parcel.number,
"dstCountry" : parcel.countryCode];

if (parcel.postalService != nil)
{
parcelDict["postalService"] = parcel.postalService;
}

var errorPtr: NSErrorPointer
let dict: NSDictionary = parcelDict
var data = NSJSONSerialization.dataWithJSONObject(dict, options:0, error: errorPtr) as NSData

return NSString(data: data, encoding: NSUTF8StringEncoding)

但是 let dict: NSDictionary = parcelDict 不起作用

let dict: NSDictionary = parcelDict as NSDictionary

var data = NSJSONSerialization.dataWithJSONObject(parcelDict as NSMutableDictionary, options:0, error: errorPtr) as NSData

所有这些示例都不起作用。它们会产生以下错误:

enter image description here

enter image description here

正确的做法是什么?

更新:

有效的代码

var parcelDict = ["trackingNumber" : parcel.number!,
"dstCountry" : parcel.countryCode!];

if (parcel.postalService != nil) {
parcelDict["postalService"] = parcel.postalService;
}

var jsonError : NSError?
let dict = parcelDict as NSDictionary
var data = NSJSONSerialization.dataWithJSONObject(dict, options:nil, error: &jsonError)
return NSString(data: data!, encoding: NSUTF8StringEncoding)!

最佳答案

你必须像这样转换它:

let dict = parcelDict as NSDictionary

否则,在 ex 的方法中使用 Swift Dictionary 和 NSDictionary 时,它们的处理方式几乎相同:

func test(dict: NSDictionary) {}

let dict = ["Test":1]
test(dict)

将完全正常工作。


更新后

如果您将 Dictionary 值类型更改为非可选字符串,那么您的错误就会消失。

[String:String?] change to -> [String:String]

关于ios - 如何将 swift Dictionary 转换为 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502878/

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