关于结构阵列有几个问题,但我找不到任何答案。提前致谢。 我有以下几种结构:
var datosLibros = [BookData]()
该结构具有以下数据:
struct BookData {
var title: String
var author: String
var image: UIImage?
var isbn: String
}
用户使用isbn进行搜索,并将图书数据保存到此结构中并附加到datosLibros中。搜索结果通过以下代码附加到datosLibros:
let libro = BookData(title: bookTitle!, author: bookAuthor!, image: bookCover, isbn: termino)
datosLibros.append(libro)
我需要在表格视图中检索单元格文本的每个标题。我试过这个:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
for i in datosLibros {
cell.textLabel?.text = i.title
}
return cell
}
它似乎工作,但只有在进行另一次搜索之前。然后,每个单元格标题都以最后的书名称重复。 请告诉我我做错了什么。
答案 0 :(得分:3)
您必须使用indexPath.row
作为数组索引从数组中检索该书。通过在cellForItemAtIndexPath方法中使用for循环,您只需将每个单元格的标题设置为数组中最后一本书的标题。
试试这个:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let book = datosLibros[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
cell.textLabel?.text = book.title
return cell
}
将书籍附加到datasLibros
后,您需要使用tableView.reloadData()
重新加载表格视图。