UITableViewCell textLabel未显示为可选

时间:2015-03-09 00:57:56

标签: ios uitableview swift

我目前正在关注Stanford's Swift course on iTunes U。我尝试按照第10讲的示例进行操作,并且我在下面的代码中的行中收到以下错误:The operand of postfix '?' should have an optional type; type is 'UILabel'

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(Storyboard.CellReuseIdentifier, forIndexPath: indexPath) as UITableViewCell

    // Configure the cell...
    let tweet = tweets[indexPath.section][indexPath.row]
    cell.textLabel?.text = tweet.text // this line throws the error
    cell.detailTextLabel?.text = tweet.user.name

    return cell
}

但是,如果我删除了?,那么编译就可以了。这与视频中的示例(使用?编译)冲突。此外,UITableViewCell的文档显示textLabel是可选类型。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(Storyboard.CellReuseIdentifier, forIndexPath: indexPath) as UITableViewCell

    // Configure the cell...
    let tweet = tweets[indexPath.section][indexPath.row]
    cell.textLabel.text = tweet.text // for some reason it wants me to treat the textLabel as a UILabel and not as an optional
    cell.detailTextLabel?.text = tweet.user.name

    return cell
}

有人可以解释可能导致差异的原因吗?

1 个答案:

答案 0 :(得分:0)

通过安装最新版本的Xcode(版本6.2)修复了此问题。