我有一个视图和一个显示文件列表的tableview。当用户在视图中单击按钮时,我打开tableview。用户单击文件列表行然后我开始从我的服务器下载文件,当下载开始时我更改了文件名如“11111”,当下载完成更改文件名如“22222”时(现在更改文件名后面我会进展视图) 在第一次运行中一切正常。下载并更改名称。但是在tableview中,当我再次查看并再次访问tableview时,下载正在运行,但不会在tableview中更改文件名。
我的代码有什么问题,如何显示文字值?
PS:在返回单元格之前在tableview中打印文本值时,它会显示正确的文本。
我的代码:
func setProgressValue(_ dict : NSDictionary){
//Download progress value
let cellProgressValue = dict.value(forKey: "value") as! Float
if cellProgressValue < 1.0{
fileList[cellNum].title = "111111"
updateTable()
}
else{
fileList[cellNum].title = “22222”
updateTable()
}
}
func updateTable(){
self.tableView.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return fileList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "fileCell"
let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath)
cell.textLabel?.text = self.fileList[indexPath.row].title
return cell
}
//在viewdidload中调用 func getFiles(){
for index in songList{
let urlString = "https://www.myapis.com/data/files"
Alamofire.request(urlString).validate().responseJSON { response in
let result = JSON(response.result.value)
if let items = result["items"].array {
for item in items {
//print(item)
let id = item["fileId"].stringValue
let title = ["fileName"].stringValue
let file = Files()
file.id = id
file.title = title
self.fileList.append(song)
}
self.tableView.reloadData()
}
}
}
}