it-swarm.com.ru

UITableVIewCell Ошибка Xcode 7/Swift 2

Я столкнулся со следующей ошибкой в ​​этом коде: 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

ОШИБКА: Даункаут из 'UITableViewCell?' «UITableViewCell» разворачивает только дополнительные опции; Вы хотели использовать «!»?

Есть идеи?

15
yzet00

В Swift2.0 метод dequeueReusableCellWithIdentifier объявляется как:

@available(iOS 6.0, *)
func dequeueReusableCellWithIdentifier(identifier: String, forIndexPath indexPath: NSIndexPath) -> UITableViewCell

Вы не должны приводить UITableViewCell к UITableViewCell?. Смотрите код ниже.

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

    // Configure the cell...

    return cell
}

Надеюсь это поможет!

30
Long Pham

Начиная с Xcode 7, dequeueReusableCellWithIdentifier всегда будет возвращать необязательный UITableViewCell

Вам даже не нужно указывать тип, он может быть записан кратко как:

let cell = tableView.dequeueReusableCellWithIdentifier("Cell")

или если у вас есть собственный подкласс UITableViewCell

guard let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as? SomeOtherCell else { fatalError("unexpected cell dequeued from tableView") }
3
Kelvin Lau
 CMessageCell=self.MessageTable.dequeueReusableCellWithIdentifier("CustomMessageCell") as! CustomMessageCell
0
Jignesh Radadiya

Используйте это вместо

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell")
0
Tyler