Wie kann ich die dataSource von UITableView programmgesteuert einstellen?

Ich habe ein seltsames Problem. Ich versuche, einer Tabelle programmgesteuert eine dataSource zuzuweisen.

Ich habe eine erstelltUITableView und ein IBOutlet dafür in meinem ViewController mit dem Interface Builder. Ich habe eine Klasse erstellt, die implementiertUITableViewDataSource. Ich habe diedataSource von meiner Tabelle, um eine Instanz der dataSource zu sein. Alles wird kompiliert und ordnungsgemäß ausgeführt, bis die Zeile, die die dataSource festlegt, zur Laufzeit ausgeführt wird.

Der Fehler istThread 1: EXC_BAD_ACCESS (code=EXC_i386_GPFLT) und dasclass AppDelegate Definitionszeile wird hervorgehoben.

class ViewController: UIViewController {

    @IBOutlet weak var table: UITableView!

    override func viewDidLoad() {
        let ds = MyData()
        table.dataSource = ds // <---- Runtime error
        table.reloadData()
        super.viewDidLoad()
    }
    // ... other methods
}


class MyData: NSObject, UITableViewDataSource {
    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
        return 5
    }
    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
        let cell = UITableViewCell()
        cell.textLabel.text = "a row"
        return cell
    }
}

Irgendwelche Ideen, warum ich diesen Laufzeitfehler erhalte? Ich benutze XCode 6 Beta 4 mit Swift.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage