Не удалось привести значение типа «UITableViewCell» к «SwipeCellKit.SwipeTableViewCell» - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь использовать модуль с именем SwipeCellKit в своем проекте, где этот модуль добавляет класс с именем SwipeTableViewCell.Пока что я сделал следующее:

  • Создание контроллера представления для раскадровки.
  • Создание класса UIViewController.
  • Импорт SwipeCellKit вФайл Swift.
  • Назначение контроллера представления классу.
  • Добавление представления таблицы к контроллеру представления.
  • Подключение делегата и источника данных из представления таблицы к контроллеру представления.
  • Добавьте прототип ячейки в табличное представление и назовите ее «ячейка» для ее многократно используемого идентификатора.
  • Измените класс ячейки на SwipeTableViewCell.
  • Добавитьделегирование табличного представления в контроллер представления.
  • Добавление функции numberOfRows и cellForRow в мой класс UIViewController.

Это реализация cellForRow:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell;
    return cell;
}

Но я получил ошибку на let cell = ..., сказав:

Невозможно привести значение типа 'UITableViewCell' к 'SwipeCellKit.SwipeTableViewCell'

Зачем?И как это исправить?Я думаю, я все устроил так, как должно быть.Я что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Я создал следующий пример

import UIKit
import SwipeCellKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {


    @IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 4
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell
        return cell
    }

}


class SwipeTableViewCellSubClass: SwipeTableViewCell {

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

}

установил класс для вашего представления равным SwipeTableViewCellSubClass.

это должно работать идеально для вас.удачи

0 голосов
/ 28 января 2019

Вам нужно создать свой собственный класс Cell как подкласс SwipeTableViewCell, затем вам нужно реализовать протокол SwipeTableViewCellDelegate в вашем ViewController

и для этой строки

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell

вы должны использовать имя вашего класса, которое является SwipeTableViewCell подклассом

пример

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! MySwipeableCell
cell.delegate = self
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...