2016-04-20 8 views
0

У меня есть массив объектов, как это:Массив объектов и Table View

var Dogs : [Dog] = [Dog]() 

Чтобы дать вам пример, это выглядит следующим образом при печати:

[Dog { 
    name = Dog1; 
    age = 9; 

}, Dog { 
    name = Dog2; 
    age = 4; 

}] 

Я хочу, чтобы показать этот элемент в табличном представлении, поэтому я использую эту классическую функцию:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) 


     cell.titleLabel.text = Dogs[indexPath.row]["name"]! as? String 

     return cell 
    } 

Но я получаю сообщение об ошибке:

fatal error: Array index out of range 
+0

Посмотрите на ваш Tableview в 'numberOfRowsInSection' и убедитесь, что она возвращается количество элементов в массиве источника данных, а не больше. – JAL

+0

numberOfRowsInSection возвращает 2, как количество объектов в массиве – Omid

+0

Каково значение 'indexPath.row' при сбое программы? – JAL

ответ

0
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) 

    let dog = Dogs[indexPath.row] 
    cell.titleLabel.text = dog.name 

    return cell 
}