Я работаю в Swift с одним TableViewController
с одной ячейкой прототипа. У ячейки есть идентификатор повторного использования, указанный в раскадровке, но он никогда не удаляется должным образом. Я всегда получаю сообщение об ошибке «неожиданно обнаружил нуль при распаковке необязательного значения».Swift TableViewController reuseIdentifier никогда не работает
Я правильно зарегистрировал класс следующим образом:
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myNewCell")
Код-нарушителем является:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("myNewCell") as UITableViewCell
let textField = cell.viewWithTag(123) as UITextField
textField.text = "test"
return cell
}
Я чувствую, что я попробовал все здесь, но это не правильно дает ячейку с этот идентификатор. Даже при использовании резервной копии (если nil, создать ячейку с этим идентификатором) все еще дает ошибку. Это определенно проблема с получением ячейки с этим идентификатором, но она зарегистрирована и указана в раскадровке ... Любая помощь очень ценится!
Я предполагаю, что ошибка на viewWithTag: линии, так как при регистрации класса, вы получаете по умолчанию UITableViewCell, что не будет иметь вид с тегом 123. УДАЛЕНИЕ, что регистрация метод должен исправить проблема (Предположим, что вы установили идентификатор ячейки в «myNewCell» в IB). – rdelmar
Хотите узнать, почему вы переопределите cellForRowAtIndexPath? –
Довольно уверен, что это функция в TableViewController, которая я подклассифицирую для моего уникального PrefixTableViewController. Так что это переопределенный метод. Xcode вставил это ключевое слово для меня. – dhganey