gpt4 book ai didi

ios - 尝试读取 JSON 数据时发生 fatal error

转载 作者:行者123 更新时间:2023-11-29 01:06:53 25 4
gpt4 key购买 nike

我的代码是

  let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers ) as! NSArray
let json = JSON(jsonData)


for (_, subJSON): (String, JSON) in json[0]["events"] {

let rel1 = InboxEvents(title: subJSON["title"].string!, guests: subJSON["guests"].string!, eventpic: subJSON["eventpic"].string!, eventID : NSInteger(subJSON["ID"].string!)!)


self.arrayOfRels.append(rel1)

}

这是InboxEvents

class InboxEvents {

var title = ""
var guests = ""
var eventpic = ""
var eventID = 6


init(title : String, guests: String, eventpic : String, eventID : NSInteger) {

self.title = title
self.guests = guests
self.eventpic = eventpic
self.eventID = eventID

}

我遇到 fatal error :在 for 循环中解包可选值时意外发现 nil

json输出在这里

[
{
"events" : [
{
"ID" : "3",
"title" : "Test Event",
"guests" : 3,
"eventpic" : "/images\/event_pic\/event1.jpg"
},
{
"ID" : "1",
"title" : "Test Event",
"guests" : 2,
"eventpic" : "/images\/event_pic\/event1.jpg"
}
]
}
]

这里有什么问题?

最佳答案

您的问题出在您作为示例显示的 json 中的 subJSON["guests"] 中,guest 参数是 Int 类型,但是当您获取值时,您正在获取值作为字符串
因此,当您简单地打印该值时,它将显示为 nil,而当您试图强制解包时,它会崩溃

所以可以有两种选择

  • 要么将 json guest 属性更改为字符串,就像在作为字符串传递的 InboxEvent 中一样

  • 另一种选择是根据您的要求获取整数/双整数中的值,将其转换为字符串并在 InboxEvent 中传递,或者使 InboxEvent 采用 Int 而不是字符串

关于ios - 尝试读取 JSON 数据时发生 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36265530/

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