2016-01-11 5 views
9

Ich habe nach dem Apfel Tutorial gewesen here und habe einen Fehler entdecken:Xcode Fehler: nicht in der Lage, eine Zelle aus der Warteschlange entfernt mit der Kennung MealTableViewCell

2016-01-12 09:34:32.909 FoodTracker[1812:124509] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier MealTableViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 

Der Fehler wird angezeigt, wenn das Programm ausgeführt wird, und die rot markierte Zeile erscheint auf der Klassenlinie von AppDelegate.swift

die Codezeilen Diese werden ich glaube, die Fehler verursachen, wie ich durch Haltepunkte herausgefunden:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cellIdentifier = "MealTableViewCell" 
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MealTableViewCell 

    // Configure the cell... 
    let meal = meals[indexPath.row] 

    cell.nameLabel.text = meal.name 
    cell.photoImageView.image = meal.photo 
    cell.ratingControl.rating = meal.rating 


    return cell 

} 

Ich habe mich online umgeschaut, und viele Antworten haben gesagt, um sicherzustellen, dass die TableCell eine Kennung hat, aber meins tut und der Fehler immer noch auftaucht.

Bitte lassen Sie mich wissen, wenn ich weitere Informationen posten muss.

Vielen Dank im Voraus

+0

registriert haben Sie Ihr Handy entweder über die Interface Builder oder über Code? – luk2302

+5

* "3. Suchen Sie im Attribute Inspector nach dem Feld Identifier und geben Sie MealtTableViewCell ein. Drücken Sie die Eingabetaste. Dies ist ein wichtiger Schritt - Sie werden später sehen, warum." - Haben Sie das getan? – luk2302

+1

Ja, ich habe das getan, aber es wirft immer noch einen Fehler ... Ich weiß nicht warum – demar

Antwort

21

Dies funktioniert für mich ..

my Scene

Attributes inspector

und ich bin eine andere Kennung verwenden, "DeviceDetailsCell"

let cellIdentifier = "DeviceDetailsCell" 
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! DeviceDetailsTableViewCell 
6

Gerade für die Aufzeichnung hier ist, wie ich mein Problem gelöst:

ich die aktuelle Kennung nahm, die im Attribute-Inspektoren war, gelöscht es, drückte Rückkehr und angeklickt entfernt. Danach klickte ich wieder in das Feld mit dem Bezeichner und tippte den Bezeichner erneut ein und drückte Return. Ich speicherte dann die Storyboard-Datei und es funktionierte, als ich es ausführte.

+1

Jan Antwort ist ziemlich gut, dass es Screenshots zeigt die Lösung (ich hatte das gleiche Problem und es geschafft, es zu beheben.) Sie könnten darüber nachdenken, ihm das Akzeptieren Marke zu geben, um ihn zu gewinnen weitere 15 Punkte! –

Verwandte Themen