2016-04-20 15 views
0

ich ein Array von Objekten wie dieses:Array von Objekten und Tabellenansicht

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

Um Ihnen ein Beispiel sieht es so aus, wenn Sie es drucken:

[Dog { 
    name = Dog1; 
    age = 9; 

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

}] 

Ich möchte zeigen, dieses Element in einer Tabellenansicht so verwende ich diese klassische Funktion:

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 
    } 

Aber ich erhalte eine Fehlermeldung:

fatal error: Array index out of range 
+0

Werfen Sie einen Blick auf Ihre Tableview des 'numberOfRowsInSection' und stellen Sie sicher, dass es die Anzahl der Elemente in der Datenquelle Array zurückgibt, und nicht mehr. – JAL

+0

numberOfRowsInSection gibt 2 wie die Anzahl der Objekte im Array zurück – Omid

+0

Was ist der Wert von 'indexPath.row', wenn das Programm abstürzt? – JAL

Antwort

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 
}