我正在尝试在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
。我应该做任何其他类型的初始化吗?为什么没有附加数据?
答案 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
键的值,则会提供默认的空数组。