gpt4 book ai didi

arrays - Swift 无法访问单个对象数组

转载 作者:行者123 更新时间:2023-11-30 12:11:57 36 4
gpt4 key购买 nike

我正在尝试从 json 文件访问数据。问题是有些值是 NSSingleObjectArrays (只有项目的数组),我无法将其转换为字符串。

class CarObject {
var pictureURL: String!
var carURL: String!
var carPrice: String!
required init(json: [String: AnyObject]) {
pictureURL = json["galleryURL"] as! String
carURL = json["viewItemURL"] as! String
carPrice = json["currentPrice"] as! String
}
}

我收到以下错误消息:

Could not cast value of type '__NSSingleObjectArrayI' (0x10a2ec548) to 'NSString' (0x109729440).

我尝试像这样访问它们:

"json["galleryURL"][0] as String!" 

但我收到以下错误:

Type 'Any?' has no subscript members

这些值如下所示:

galleryURL = ("one value");

你们知道如何轻松访问它们吗?谢谢!

最佳答案

首先将事物转换为适当的类型。听起来你的值是包含单个字符串的数组,所以像这样:

var pictureURL: URL

required init?(json: [String: AnyObject]) {
guard let pictureURLString = (json["galleryURL"] as? [String])?.first,
let pictureURL = URLComponents(string: pictureURLString)?.url else {
return nil
}

self.pictureURL = pictureURL
}

此外,您可能需要重新考虑您的属性所使用的类型。 pictureURLcarURL 属性是 URL,因此将它们键入为 URL 更有意义。 carPrice 属性可能是数字,因此作为 Double 更有意义。

关于arrays - Swift 无法访问单个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943780/

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