在可能相关的两种不同情况下,我遇到了以下错误。错误是:
lldb线程1:致命错误:展开一个可选值时意外发现nil
这是第一种情况的代码:
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中已设置的属性的列表。我可以将listingType变量打印到控制台,然后成功打印“ Sale”。但是,当我分配变量时,它将给出该错误。
使用位置管理器功能时,我遇到了相同的问题。如果获取用户的当前位置坐标,则当我尝试将这些坐标添加到全局字典时,会引发相同的错误。我正在用Swift 4编写代码。
答案 0 :(得分:1)
您不能只为[0]
分配内容,因为数组最初是nil
if propertyData["listingType"] == nil {
propertyData["listingType"] = [listingType[0]] //Create a new array with the string
} else {
propertyData["listingType"]![0] = listingType[0]
}