База данных Firebase - Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь заполнить метку в своей пользовательской ячейке для моего UITableViewController информацией из моей базы данных Firebase, но я продолжаю сталкиваться с этой ошибкой:

"Поток 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертыванииНеобязательное значение "

Я прочитал эту ссылку: Что означает" фатальная ошибка: неожиданно обнаружен ноль при развертывании Необязательного значения "?

Не думаюЯ получаю доступ к розеткам до того, как они будут загружены, и я проверил, что мое соединение IBOutlet правильное.

class FeedCell: UITableViewCell {

    @IBOutlet weak var postText: UILabel!

}

class FeedTableViewController: UITableViewController {

    var postInfo = FeedCell()

    override func viewDidLoad() {
        super.viewDidLoad()

        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
//         self.navigationItem.rightBarButtonItem = self.editButtonItem

        self.tableView.rowHeight = 100.0

//        postText = UILabel()
//
        var ref: DatabaseReference!
        ref = Database.database().reference()
        let cellRef = ref.child("post/body")

        cellRef.observeSingleEvent(of: .value) { (snapshot) in
            if let body = snapshot.value as? String {
                self.postInfo.postText.text = body
                print(body)
            }
        }
    }

Here's my database

Я ожидал, что этикетка будет обновлена ​​вместе с теломтекст "тест FireBase", но я просто сталкиваюсь с этой ошибкой.Это потому, что я определил свой IBOutlet в другом классе, а затем сослался на него в своем FeedTableVIewController?Любой совет будет оценен!

1 Ответ

1 голос
/ 30 марта 2019

Проблема здесь

var postInfo = FeedCell()

с

self.postInfo.postText.text = body <<< postText is nil

Во-первых, вы не должны создавать экземпляр var ячейки, и, поскольку ваш текущий var здесь postInfo, инициированс FeedCell(), поэтому розетка равна нулю, независимо от того, подключена она или нет

Во-вторых, вы должны использовать методы делегата таблицы и dataSource для заполнения таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...