ios - 尼尔· swift 词典

标签 ios swift dictionary null

我的字典总是为零,想了解为什么会发生这种情况。 我的代码:

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

最佳答案

@Kirsteins 提供了解决方案 - 但很高兴知道原因。

使用[NSDate : MCACalendar]?()无法按您的预期工作,因为它创建了 [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 很明显,不需要进一步解释:)

关于ios - 尼尔· swift 词典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546454/

相关文章:

ios - Alamofire 授权 POST

swift - map 按钮刷新位置

python - 将多系列词典保存到 Excel

javascript - IOS - React Native - 未处理的 JS 异常 : SyntaxError

ios - 具有多个应用程序的iOS SSO

ios - 如何在 Swift 中捕获 "Index out of range"?

arrays - Swift 中数组、集合和字典的区别

python - 将字典值转换为列表?

ios - UITableview 委托(delegate)方法未执行

ios - 键盘与 TextView 重叠