提供tableviewcell,其中包含存储在数组中的对象的var

时间:2015-05-21 06:32:07

标签: xcode swift tableview

我想做以下事情:

1-从类创建对象(包含3个变量) 2-将这些对象存储在数组中 3-创建一个tableview 4- tableview中的单元格必须提供第一个变量的输入。

我被困在最后一步。有人能帮助我吗?

var totalBooks = [AnyObject]()   *// create an empty array*


var newBook = Book(setTitle: "booktitle", setWriter: "writer", setFile: "file")  *// creates object from a class with 3 variables*


totalBooks.append(newBook)  *// puts the object in the array*


*cell.textLabel?.text = totalBooks **???*** *// must put the first variable (setTitle) as output information.* 

提前致谢

2 个答案:

答案 0 :(得分:0)

1。您应该像这样创建数组:

let totalBooks = [Book]()

2。 setTitle不是属性的好名字 - 使用title

3. 通过符合UITableViewDataSource协议,将totalBooks数组设置为表视图的数据源。

您可以在此处阅读并自行尝试 - UITableViewDataSource

4. tableView(_:cellForRowAtIndexPath:)中为totalBooks数据源中的相应项设置单元格的标题标签。

答案 1 :(得分:0)

这是一个解决方案。

在视图控制器var myBooks = [Book]()

中创建一个属性

在viewDidLoad方法

override func viewDidLoad() {
        super.viewDidLoad()
        for _ in 1...3 {
        var newBook = Book(setTitle: "booktitle", setWriter: "writer", setFile: "file")
        myBooks.append(newBook)

        }

    }

在cellForRowAtIndexPath委托方法

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

       var cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
       let book = self.myBooks[indexPath.row] 
       cell.label.text = book.title //or book.setTitle, whatever you have
       return cell

    }