У класса нет инициализаторов, несмотря на принудительное развертывание IBOutlets? - PullRequest
0 голосов
/ 09 марта 2019

У меня есть класс в swift со следующей подписью:

class CommentsVC: UITableViewController {

Предоставление мне:

У класса 'CommentsVC' нет инициализаторов

У него есть два следующих IBOutlets, а также два IBActions:

@IBOutlet weak var AddCommentView: UIView!
@IBOutlet weak var AddingCommentTextField: UITextField!

У меня также есть два метода табличного представления:

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

И

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

Iпосмотрел здесь однако в этой ситуации это не работает, так как я уже делаю то, что они рекомендуют.

Что не так и как я могу это исправить?

Обновление:

Ниже приведен кодпроблема.На другом VC, который использует метод prepare для передачи этих данных, я передаю объект post, который инициализируется так же, как я инициализирую проблемный код ниже.Как мне это исправить?

var selectedMedia : Media {
    didSet {
        self.comments = selectedMedia.comments
        loadComments()
    }
}

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Эту проблему довольно просто решить. Все, что вам нужно сделать, это добавить принудительное развертывание или необязательное, например, так:

var selectedMedia : Media! /*or, ?*/ {
    didSet {
        self.comments = selectedMedia.comments
        loadComments()
    }
}

Вы получите некоторые ошибки, это будет легко, просто нажмите исправить из предложенных опций, чтобы исправить их (в основном они скажут добавить «!» И т. Д.)

0 голосов
/ 09 марта 2019

Просто добавьте начальное значение для var selectedMedia, примерно так:

var selectedMedia: Media = Media() {
    didSet {
        self.comments = selectedMedia.comments
        loadComments()
    }
}

или вы можете сделать выбранное Медиа необязательным. или СМИ?

...