Я конвертирую приложение из объектива-c в быстрое. Я не написал объектный код c. Одна из функций, которые кодируют как ниже ...Невозможно преобразовать из UITableViewCell в указанный тип
func tableView (tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier: String = "Cell"
var cell: ListCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier)!
И Theres больше кода в функции, но я не думаю, что это имеет отношение. Когда я запускаю приложение, я получаю сообщение об ошибке: "nil found while unwrapping an optional"
в строке, где я создаю переменную cell
. Ошибка возникает, потому что я пытаюсь преобразовать UITableViewCell
в тип ListCell
. И конверсия происходит и возвращает нуль. Мне нужно иметь эту строку в коде, потому что она есть в объектной версии приложения.
Есть ли способ обойти это и преобразовать UITableViewCell
в ListCell
без преобразования и возврата нулевого значения?
Вот декларация ListCell
класса ...
@interface ListCell : UITableViewCell {
//code
}
Я не конвертировать ListCell
класса быстр, и вместо того, чтобы использовать заголовок мостовой. Также ListCell
является подклассом UITableViewCell
, поэтому почему преобразование не работает.
Вам необходимо проверить раскадровку и убедиться, что класс для ячейки прототипа с reuseIdentifier 'Cell' установлен в' ListCell'.Кроме того, ваша линия dequeue выглядит странно; вы назначаете неявно развернутую опцию для необязательного. Обычно вы увидите 'var cell = dequeueReusableCellWithIdentifier (cellIdentifier) как! ListCell' - но вам все еще нужно установить класс ячеек для этого, чтобы он работал – Paulw11