2017-02-06 5 views
0

Хорошо, поэтому я новичок, и я создал UITableView с пользовательским классом ячеек, который загружается как следует, отображая 2 текстовые метки (и cellTitle) в каждой строке/ячейке (все работает нормально).Не удается получить доступ к значению textLabel при удалении ячейки

Но проблема в том, что когда я вызываю функцию строки удаления, я не могу получить доступ к значениям textLabels. Я получаю ту же ошибку при вызове обеих меток - значение типа UITableViewCell? не имеет ни одного члена cellPrice '

Не могу понять, почему, когда метки ячеек и значения загружаются нормально и являются правильными, но я не могу получить к ним доступ, когда мне нужно их удалить. См. Мой код ниже.

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if editingStyle == UITableViewCellEditingStyle.Delete { 
     self.total - self.dict[tableView.cellForRowAtIndexPath(indexPath).​cellPrice!.text‌​!] 
     self.totalLabel.text = "Total: \(self.total)" 
     self.dict.removeValueForKey(tableView.cellForRowAtIndexPath(indexPath).cellTitle!.text!) 
     tableView.reloadData() 
    }    
} 
+0

Получить информацию о наклейке, прежде чем вы называете. –

ответ

0

Вы должны бросить в ячейку пользовательского класса:

let cell = tableView.cellForRowAtIndexPath(indexPath) as! MyCustomCellClass 
self.total - self.dict[cell.​cellPrice!.text‌​!] 
+0

Незначительное предложение, но лучше использовать 'guard let cell = tableView.cellForRowAtIndexPath (indexPath) как? MyCustomCellClass else {return} ', поэтому он не сбой, если в будущем будут введены другие типы ячеек. –

+0

Все еще давая мне ту же ошибку –

+0

@ V.Roberts Может быть, это дает вам ошибку на другой линии? – Sulthan

Смежные вопросы