字典数据结构在Swift中返回nil

时间:2018-03-10 16:18:24

标签: swift dictionary

我正在尝试在swift中实现一个存储字符串数组的字典数据结构。我宣布它是这样的:

var journeyDetails = [Int: [String]]()

当我想向其追加一个实际的字符串时,我会

if let journeys = fetchedData["journeys"] as? [[String: Any]]{
                        var nr_of_journey : Int = 0
                        for journey in journeys{
                            self.journeyDetails[nr_of_journey]?.append("The starting date and time of the journey are: "+String(describing: journey["startDateTime"]))
                        }
}
nr_of_journey = nr_of_journey + 1 

等等。但是,journeyDetails不断返回nil。我应该做任何其他类型的初始化吗?为什么没有附加数据?

1 个答案:

答案 0 :(得分:0)

最初journeyDetails中没有关键字或值,因此每次使用self.journeyDetails[nr_of_journey]都会返回nil

如果您使用的是Swift 4,则可以指定当前没有给定键值的默认值。

更新专栏:

self.journeyDetails[nr_of_journey]?.append("The starting date and time of the journey are: "+String(describing: journey["startDateTime"]))

为:

self.journeyDetails[nr_of_journey, default: []].append("The starting date and time of the journey are: "+String(describing: journey["startDateTime"]))

如果当前没有给定nr_of_journey键的值,则会提供默认的空数组。