繁体   English   中英

尼尔·斯威夫特字典

[英]Nil Swift Dictionary

我的字典总是nil,想了解为什么会这样。 我的代码:

var dic = [NSDate : MCACalendar]?()
dic?[currentDate!] = calendar

@Kirsteins提供了解决方案-但很高兴知道为什么。

使用[NSDate : MCACalendar]?()无法正常工作,因为它创建了[NSDate : MCACalendar]?的实例[NSDate : MCACalendar]? ,即Optional<[NSDate : MCACalendar]>的实例,更确切地说,是Optional<[NSDate : MCACalendar]>的实例。 因此,初始化不会创建[NSDate : MCACalendar]的实例。

使用无参数构造函数创建一个可选实例( Optional<T> )的实例,将其初始化为.None (等效于nil ),例如:

var x = Int?() // `x` is initialized as `.None`

如果将参数传递给构造函数,则使用.Some初始化可选变量:

var x = Int?(5) // x is initialized as `.Some(5)`

这就解释了Kirsteins的解决方案。 1.解决方案编号。 2很明显,不需要进一步解释:)

似乎[NSDate : MCACalendar]?()失败并返回nil 您可能要使用:

var dic = [NSDate : MCACalendar]?([:])

要么

var dic: [NSDate : MCACalendar]? = [:]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM