gpt4 book ai didi

string - Swift 可以打印 AnyObject,但不能从 AnyObject 创建字符串

转载 作者:可可西里 更新时间:2023-10-31 23:57:19 29 4
gpt4 key购买 nike

我有两段几乎相同的代码让我感到困惑。两者都以令我惊讶的方式运作。第一个作品,如下所示:

let HTTPBody = NSJSONSerialization.dataWithJSONObject(jsonDict, options: NSJSONWritingOptions.PrettyPrinted, error: &jsonError)
let jsonObj : AnyObject! = NSJSONSerialization.JSONObjectWithData(HTTPBody, options: NSJSONReadingOptions.MutableLeaves, error: &jsonError2)
println(jsonObj)

将 JSON 对象打印为字符串

{
button = {
name = test;
"price_currency_iso" = USD;
"price_string" = "0.20";
};

另一段代码,没有按预期工作

 let HTTPBody = NSJSONSerialization.dataWithJSONObject(jsonDict, options: NSJSONWritingOptions.PrettyPrinted, error: &jsonError)
let jsonObj : AnyObject! = NSJSONSerialization.JSONObjectWithData(HTTPBody, options: NSJSONReadingOptions.MutableLeaves, error: &jsonError2)
let jsonData = jsonObj as? NSData
jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)
println(jsonString)

它只是打印出一个空行,这意味着“jsonString”是一个空字符串。

Xcode 如何知道并能够转换 AnyObject!使用 println 时转换为字符串,但无法从 AnyObject 创建 NSString 对象!同时?

最佳答案

在您的第二部分代码中,您试图从一个不存在的 NSData 对象创建 jsonStringNSData 基本上将任意字节的集合表示为数据。但是,您的 jsonObj 对象很可能是已序列化和反序列化的原始 jsonDict 对象的 NSDictionary

要回答您的基本问题,如果您想获得任意 AnyObject 类型的字符串表示形式 - 如您所述,println 可以处理其中的大部分。要创建包含与 println 相同表示的实际 String 实例,您可以使用以下语法:

let object : AnyObject = ...
let stringRepresentation = "\(object)"

现在您将看到以下两个语句的相同输出:

println(object)
println(stringRepresentation)

关于string - Swift 可以打印 AnyObject,但不能从 AnyObject 创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24859103/

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