gpt4 book ai didi

ios - 在 swift 的动态表格 View 单元格中使用 JSON 响应

转载 作者:行者123 更新时间:2023-11-30 11:14:27 25 4
gpt4 key购买 nike

我有一个对象数组,我在屏幕上的表格 View 中显示这些对象。数组中的每个对象都有 URL 属性,可以从中获取附加信息。

在我的例子中,它是声明数组,通过向其 URL 属性发送 GET 请求,我可以获得包含有关声明发布日期的数据的 JSON。

我想在表格 View 单元格中表示该发布日期。我应该在哪里提出请求?

  • viewDidLoad 中的 for-in 循环中
  • tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)

我尝试了不同的方法,但总是只得到一个响应(没有 array.count 那么多的响应)和许多错误。

请帮忙并告诉从哪里开始。

import UIKit
import SafariServices

class DetailDeclarationInfoTableViewController: UITableViewController {

let declarationInfoController = DeclarationInfoController()

var declarationInfo: DeclarationInfo? {
didSet {
print("Received declarationInfo")
}
}

var declarationModifiedDate: [String] = [] {
didSet {
tableView.reloadData()
print("New element in Dates")
print(declarationModifiedDate)
}
}

override func viewDidLoad() {
super.viewDidLoad()
let titleText = String((self.declarationInfo?.items.count)!)
self.navigationItem.title = "Знайдено \(titleText) декларацій"

guard let declarationInfo = declarationInfo else { return }
for declarant in declarationInfo.items {

declarationInfoController.fetchDeclarationDetails(with: declarant.id) { (declarationInfoElement) in
if let declarationInfoElement = declarationInfoElement {

DispatchQueue.main.async {
print(declarationInfoElement)
print("Success!!")
self.declarationModifiedDate.append(declarationInfoElement["declarationType"] as! String)
self.tableView.reloadData()
}
}
}
}
}


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let declarationInfo = declarationInfo {
return (declarationInfo.items.count)
} else {
return 0
}
}

override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "declarationInfoCell", for: indexPath)
var personsPlaceOfWork: String = ""
var date: String = ""

if let placeOfWork = declarationInfo?.items[indexPath.row].placeOfWork {
personsPlaceOfWork = placeOfWork
}

if (indexPath.row + 1) <= declarationModifiedDate.count {
date = ", " + declarationModifiedDate[indexPath.row]
}

let cellText = (declarationInfo?.items[indexPath.row].lastname)! + " " + (declarationInfo?.items[indexPath.row].firstname)! + ", " + personsPlaceOfWork + date
cell.textLabel?.text = cellText
cell.textLabel?.numberOfLines = 0
cell.backgroundColor = UIColor.backgroundPink

return cell
}

Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.} Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.} Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.} Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.} ["declarationYear1": 2016, "declarationType": 1] Success!! New element in Dates ["1"]

最佳答案

收到响应后重新加载Tableview,并从viewdidload发出请求。你提到它时遇到了什么类型的错误。

关于ios - 在 swift 的动态表格 View 单元格中使用 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51878391/

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