gpt4 book ai didi

json - 在 swift 中从 JSON 填充 tableview 时的约定是什么?

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

我见过有人创建一个对象来接收 JSON 数据,然后拥有该对象的数组。当从 JSON 接收到新数据时,对象数组会更新并且 TableView 会重新加载。

我该怎么做?我不太明白它,但我现在需要它,因为我需要从 PHP 接收数据,然后在 Xcode 中将其解析到 TableView 上。

如果可以的话,如果您也能展示任何优化技巧,我将非常感激。

我认为他们在代码中使用了 didSet 变量。

感谢您的阅读!

最佳答案

这就是你所说的 didSet 的意思吗?

class ViewController: UIViewController, UITableViewDataSource {

@IBOutlet weak var myTableView: UITableView!

private var dataArray: [String] = [String]() {
didSet {
myTableView.reloadData()
}
}

override func viewDidLoad() {
super.viewDidLoad()

let jsonRequest: NSURLRequest = NSURLRequest(URL: NSURL(string: "yourEndPoint")!)
NSURLConnection.sendAsynchronousRequest(jsonRequest, queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
if let jsonArray: [[String: String]] = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableLeaves, error: nil) as? [[String: String]] {
for jsonObject in jsonArray {
if let stringFromKey: String = jsonObject["yourKey"] as String? {
self.dataArray.append(stringFromKey)
}
}
}
}
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

cell.textLabel?.text = dataArray[indexPath.row]

return cell
}

}

您只需交换 JSON 解析和数组类型即可满足您的目的

关于json - 在 swift 中从 JSON 填充 tableview 时的约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31987113/

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