gpt4 book ai didi

ios - swift for 循环没有循环足够的次数

转载 作者:行者123 更新时间:2023-11-28 12:40:54 24 4
gpt4 key购买 nike

我的应用程序中有一个 tableView,当我加载该应用程序时,我希望 View 中填充狗的列表(从服务器检索)。

我有这个工作,但它只会从服务器加载列表中的第一条狗。

这是从序列化来自服务器的 JSON 响应开始的代码

do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as! [AnyObject]
dispatch_async(dispatch_get_main_queue(), {
self.tableView.beginUpdates()
if let theDogs = json[0] as? [[String: AnyObject]] {
for dog in theDogs {
print("Dog")
if let ID = dog["ID"] as? String {
print(ID + " Safe")
let thisDog = Dog(name: (dog["Name"] as? String)!, surname: (dog["Surname"] as? String)!, id: (dog["ID"] as? String)!, boarding: true)
let newIndexPath = NSIndexPath(forRow: self.dogs.count, inSection: 0)

// code here
self.dogs.append(thisDog)
self.tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Bottom)


}
}
}
self.tableView.endUpdates()
})
} catch {
print("error serializing JSON: \(error)")
}

这是日志的副本(其中包括来自服务器的打印响应)

Optional([[{"ID":"47","Name":"Sparky","Surname":"McAllister"}],
[{"ID":"31","Name":"Maddie","Surname":"Crawford"}]])
Dog
47 Safe

从日志中可以看出,这个列表中有2条狗。如果循环正常,我希望看到 Dog 在日志中打印两次,如果它到达创建新 的代码部分,我希望看到 31 Safe对象。

我无法弄清楚我做错了什么,任何人都可以看到我的问题吗?

谢谢

最佳答案

因为 JSON 是一个数组的数组,每个数组包含一个字典,当您调用 if let theDogs = json[0] 时,您会得到 JSON 的这一部分:[{"ID": "47","姓名":"Sparky","姓氏":"McAllister"}]
您需要调用 if let theDogs = json[1] 来获取 JSON 的这一部分:

[{"ID":"31","Name":"Maddie","Surname":"Crawford"}]

关于ios - swift for 循环没有循环足够的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39413903/

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