2016-09-06 5 views
0

구조 배열에 대해 몇 가지 질문이 있지만 답변을 찾을 수 없습니다. 미리 감사드립니다. 나는 구조의 다음과 같은 배열을 가지고 :테이블보기의 구조 배열

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

datosLibros 배열에 검색 결과를 추가합니까? –

+0

예, 편집 후 질문에 대한 답변을 드리겠습니다. –

+0

어떻게 datosLibros를 채우고 있습니까? – boidkan

답변

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()을 사용하여 테이블보기를 다시로드해야합니다.

+0

는 매력처럼 일했습니다! 감사!! 당신의 설명은 매우 분명했습니다. 그리고 지금 나는 왜 그 제목이 반복되고 있는지 이해합니다. –