gpt4 book ai didi

ios - 使用 SWAPI 的 resultsarray 的结果填充表格单元格

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

我正在努力从该网站获取 SWAPI(星球大战 API)--> https://swapi.co/填充我的表格 View 单元格,但我对如何抓取字符并用空数组显示它们感到有点困惑。变量“people”起作用,它抓取这些确切的字符并在控制台中显示他们的数据。我将如何在 viewDidLoad() 中执行此操作?这是我到目前为止所拥有的。我也在 swift 2.3 中这样做。

import UIKit

class PeopleViewController: UITableViewController {

// var people = ["Luke Skywalker", "Leia Organa", "Han Solo", "C-3PO", "R2-D2"]

var people = [Person]()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "http://swapi.co/api/people/")
// Create an NSURLSession to handle the request tasks
let session = NSURLSession.sharedSession()
// Create a "data task" which will request some data from a URL and then run a completion handler after it is done
let task = session.dataTaskWithURL(url!, completionHandler: {
data, response, error in
print("in here")
print(data)

do {
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary {
print(jsonResult)
if let results = jsonResult["results"] {
let resultsArray = results as! NSArray
print(resultsArray.count)
print(resultsArray.firstObject)
}
}
} catch {
print("Something went wrong")
}
})
task.resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// return the count of people
return people.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Create a generic cell
let cell = UITableViewCell()
// set the default cell label to the corresponding element in the people array
cell.textLabel?.text = people[indexPath.row]
// return the cell so that it can be rendered
return cell
}

}

最佳答案

你的想法是正确的。您只需要填充您的人员数组,然后告诉 TableView 重新加载自身(从主线程)

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "http://swapi.co/api/people/")
// Create an NSURLSession to handle the request tasks
let session = NSURLSession.sharedSession()
// Create a "data task" which will request some data from a URL and then run a completion handler after it is done
let task = session.dataTaskWithURL(url!, completionHandler: {
data, response, error in
print("in here")
print(data)

do {
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary {
print(jsonResult)
if let results = jsonResult["results"] {
let resultsArray = results as! NSArray
print(resultsArray.count)
print(resultsArray.firstObject)
//------------------------------------------------------
//Install the array in people and tell the table view to
//reload
DispatchQueue.main.async() {
//Replace the code below with code create Person
//objects from your data.
people = resultsArray.map(){Person(name:$0)}
tableView.reloadData()
}
//------------------------------------------------------
}
}
} catch {
print("Something went wrong")
}
})
task.resume()
}

关于ios - 使用 SWAPI 的 resultsarray 的结果填充表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129992/

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