Как исправить экземпляр расширения, возвращающий ноль? - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь реализовать такую ​​же функциональность, как Facebook. У меня есть кнопки «Мне нравится» в ячейках прототипа, в которых пользователь может щелкнуть «Мне нравится». Я создал аналогичную функциональность в своем классе модели и пытаюсь получить к ней доступ в своем классе tableviewcell. Я создал аналогичную функциональность в расширении в своем классе модели. Я пытаюсь вызвать расширение в другом классе, но ссылка на расширение возвращает ноль.

это расширение в моем классе моделей

extension UserPostsModel{

  func like()
{
    likez += 1
   userPosts.child(keyz!).child("likes").setValue(likez)
}
}

вот как я это называю в своем классе ячеек таблицы

//feedposts is returning nil 
var feedposts: UserPostsModel!

@IBAction func likeBtn(_ sender: UIButton) {

    feedposts.like()
}

когда пользователь нажимает на кнопку, должна быть реализована аналогичная функциональность, но приложение вылетает, потому что расширение возвращает ноль

1 Ответ

0 голосов
/ 18 апреля 2019

Вам нужно инициализировать класс UserPostsModel.

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

Или в клетке, как

var feedposts: UserPostsModel = UserPostsModel()

Но в методах cellForRow будет немного лучше практиковаться

В настоящее время свойство распаковано! (Вы говорите компилятору, что оно не может быть nil, но вы не установили его и оно равно nil)

...