gpt4 book ai didi

ios - 无法将类型 'SwiftyJSON.JSON' 的值转换为 'Swift.String'

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:22:57 25 4
gpt4 key购买 nike

我一直在尝试显示从 JSON 解析到 UITableView 的数据。我使用 SwiftyJSON 解析数据,然后将数组传递给另一个 Controller 。

我使用 NSArray 将 JSON 强制为一个数组。当我打印传递的数据时,它显示如下:

(
"string one",
"string two"
)

然后里面

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

功能,我用过

let urls: String = sshoString[indexPath.item] as! String

当我在函数 cellForItemAt 中打印数组而不强制类型为字符串时,它会打印以下内容:

string one
string two

但是当我强制类型为 String 时它崩溃并显示以下内容:

Could not cast the value of type 'SwiftyJSON.JSON'  to 'Swift.String'.

如何让它发挥作用?如何强制它成为一个字符串?

根据要求:

var featuredScreenshots:NSArray = NSArray()
var featuredssho = NSMutableArray()

for items in json["featured"].arrayValue {
featuredssho.add(items["screenshots"].arrayValue)
}

self.featuredScreenshots = featuredssho as NSArray

然后我将它传递给另一个 Controller :

let vc = self.storyboard?.instantiateViewController(withIdentifier: "DetailsView") as! DetailsView

vc.sshoString = featuredScreenshots[indexPath.row] as! NSArray

最佳答案

访问 SwiftyJSON 中的 JSON 元素会返回 JSON 类型。

为了获得您正在寻找的类型,您需要像这样使用 JSON 类型的包含属性:

let urls: String = sshoString[indexPath.item].string!

对于 SwiftyJSON,.string 是可选类型 String?,这就是为什么我将 force unwrap 放在那里的原因。一般来说,应该避免强制解包,所以我建议按照以下思路做一些事情:

if let urls = sshoString[indexPath.item].string {
//urls is now type String, and you can use it as needed
}

我建议查看 SwiftyJSON 的文档,因为它更详细地展示了使用 .int.bool.url 等获取您正在查找的值的其他示例为。

关于ios - 无法将类型 'SwiftyJSON.JSON' 的值转换为 'Swift.String',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45362812/

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