Невозможно присвоить значения из функций массиву словаря Swift 4 - PullRequest
0 голосов
/ 27 февраля 2019

Я столкнулся со следующей ошибкой в ​​двух разных сценариях, которые могут быть связаны.Ошибка:

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

Это код для первого сценария:

db.collection("properties").getDocuments()
{
    (querySnapshot, err) in
    if let err = err
    {
        print("Error getting documents: \(err)");
    }
    else
    {
        for document in querySnapshot!.documents {
            var propertyData = [String:[String]]()
            let listingType = (document.get("listingType") as! [String])
            propertyData["listingType"]![0] = listingType[0]

        }

    }
}

Я пытаюсь получить список свойств, которые я уже установил в Firestore.Я могу вывести на консоль переменную listType, и она успешно напечатает «Sale».Однако, когда я назначаю переменную, она выдает эту ошибку.

Я столкнулся с той же проблемой при использовании функций менеджера местоположения.Если я получаю координаты текущего местоположения пользователя, когда я пытаюсь добавить эти координаты в глобальный словарь, он выдает ту же ошибку.Я пишу код в Swift 4.

1 Ответ

0 голосов
/ 27 февраля 2019

Вы не можете просто назначить что-то для [0], так как массив изначально равен nil

if propertyData["listingType"] == nil {
    propertyData["listingType"] = [listingType[0]] //Create a new array with the string
} else {
    propertyData["listingType"]![0] = listingType[0]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...