UILabels in benutzerdefinierten UITableViewCell werden nie initialisiert

Ich habe Probleme beim Erstellen benutzerdefinierter Tabellenzellen mit Xcode6 (Beta 4). Genauer gesagt kann ich nicht auf meine benutzerdefinierten UILabels in der Zelle zugreifen (sie auspacken), da sie nie initialisiert werden.

So habe ich alles eingerichtet:

Ich habe eine Ansicht im Storyboard erstellt, die eine Tabellenansicht mit einer Prototypzelle enthält:

Die Ansicht ist mit einer Klasse MyCoursesTableViewController verbunden, und die Zelle (mit dem Bezeichner courseCell) mit CourseTableViewCell. Ich habe beide Klassen unten eingefügt (nur mit den relevanten Code-Bits):

MyCoursesTableViewController.swift

import UIKit

class MyCoursesTableViewController: NavToggleTableViewController {

    override func viewDidLoad() {
       super.viewDidLoad()

        self.tableView.registerClass(CourseTableViewCell.self, forCellReuseIdentifier: "courseCell")
    }

    override func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
        return 1
   }

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

        var cell : CourseTableViewCell = tableView.dequeueReusableCellWithIdentifier("courseCell", forIndexPath: indexPath) as CourseTableViewCell

        // cell is not nil

        if let titleLabel = cell.titleLabel {
            // never gets here
        } else {
            cell.textLabel.text = "Course Title"
        }

        return cell
    }
}

DasNavToggleTableViewController class ist nur eine gemeinsame Basisklasse, die ich für alle View-Controller verwende und die das Ergebnis nicht beeinflusst.

CourseTableViewCell.swift

import UIKit

class CourseTableViewCell: UITableViewCell {

    @IBOutlet weak var courseIcon: UIImageView!
    @IBOutlet weak var teacherIcon: UIImageView!
    @IBOutlet weak var studentsCountIcon: UIImageView!
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var studentsCountLabel: UILabel!
    @IBOutlet weak var teacherLabel: UILabel!

    init(style: UITableViewCellStyle, reuseIdentifier: String!) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }
}

Unten sehen Sie ein Bild davon, wie ich die Zelle im Hilfsprogrammfenster (im Storyboard) konfiguriert habe:

Das Problem entsteht innerhalb der FunktiontableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> CourseTableViewCell wenn ich auf die UILabels zugreifen möchte. Wenn ich so etwas sagen würdecell.titleLabel.text = "Course Title" Ich erhalte folgende Fehlermeldung:

fatal error: unexpectedly found nil while unwrapping an Optional value

Wo mache ich was falsch? Würde mich über jede Hilfe freuen, danke!

Antworten auf die Frage(0)

Ihre Antwort auf die Frage