表格视图不显示单元格中的内容
Posted
技术标签:
【中文标题】表格视图不显示单元格中的内容【英文标题】:table view not displaying contents in the cells 【发布时间】:2016-03-18 06:19:20 【问题描述】:我正在尝试使用 alamofire 和 swifty json 从堆栈交换 api 获取一些数据。我可以在日志中打印所需的数据,但是当我运行应用程序时,模拟器只显示空单元格。我检查了标识符,并将原型单元格值设置为 1。`
class MainTableViewController: UITableViewController,UISearchResultsUpdating
var searchKeyword: String = "questions"
// empty array to store the search results
var searchResults: [SearchResult] = []
func alamofireFunction()
Alamofire.request(.GET, "https://api.stackexchange.com/2.2/questions?=%20\(searchKeyword)%20viewpage=1&fromdate=1183075200&todate=2554416000&order=asc&sort=activity&tagged=ios&site=***").responseJSON (response) -> Void in
switch response.result
case .Success:
if let value = response.result.value
let json = JSON(value)
for (var idx=0; idx<=json["items"].count; idx++)
let result = SearchResult()
//print(json["items"][idx]["title"].stringValue)
result.name = json["items"][idx]["owner"]["display_name"].stringValue
result.question = json["items"][idx]["title"].stringValue
result.image = json["items"][idx]["owner"]["profile_image"].stringValue
self.searchResults.append(result)
case .Failure:
print("error")
override func viewDidLoad()
super.viewDidLoad()
alamofireFunction()
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
// MARK: - Table view data source
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! MainTableViewCell
cell.questionLabel.text = searchResults[indexPath.row].question
cell.nameLabel.text = searchResults[indexPath.row].name
return cell
override func numberOfSectionsInTableView(tableView: UITableView) -> Int
// #warning Incomplete implementation, return the number of sections
return 1
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
// #warning Incomplete implementation, return the number of rows
return searchResults.count
`
【问题讨论】:
你是否将委托和数据源设置为tableview?如果是,则比获取数据重新加载 tableview 后 非常感谢,重新加载表格视图完成了这项工作 【参考方案1】:当您的数据源更改时,您必须调用 self.reloadData()。这将导致 tableView 调用 dataSource 方法。
【讨论】:
【参考方案2】:这是因为你使用的是来自Url的请求,这个过程是在一个线程上执行的,所以当你这样取数据的时候,你必须调用tableView.reloadData()
让数据源知道这个过程已经完成了
【讨论】:
以上是关于表格视图不显示单元格中的内容的主要内容,如果未能解决你的问题,请参考以下文章