核心数据问题 - 不应该是可选类型

时间:2015-05-26 15:02:59

标签: swift uitableview core-data

我正在尝试在swift中关注Core Data的教程,该教程似乎是来自旧版本的swift,我开始遇到错误,视频海报不是

以下内容完全相同,但我收到了错误:

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

    let CellID: NSString = "Cell"
    var cell: UITableViewCell =  tableView?.dequeueReusableCellWithIdentifier(CellID) as UITableViewCell
    //error: operand of postfix '?' should have optional type: type is uitableview.

    if let ip = indexPath {
        var data: NSManagedObject = myList[ip.row] as NSManagedObject
        cell.textLabel.text = data.valueForKeyPath("username")
        //UILabel? does not have a member named "text'
    }
    return cell
}

我被困在这一小时,我想放弃。已经迅速改变到不能像这样做的地方

1 个答案:

答案 0 :(得分:0)

经过一些试验:

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

    let CellID = "Cell"
    var cell =  tableView.dequeueReusableCellWithIdentifier(CellID) as! UITableViewCell

    var data = myList[indexPath.row] as! NSManagedObject
    cell.textLabel?.text = data.valueForKey("username") as? String

    return cell
}

复制并替换上面的方法,希望编译器不会抱怨。

[代码用Xcode 6.3(Swift 1.2)编写]