Swift 可选键词典

Swift 可选键词典,swift,dictionary,optional,Swift,Dictionary,Optional,使用可选键创建字典是否有解决方法?我知道一个合适的解决方案需要实现条件一致性,但在此之前我有什么选择吗 let dict: [Int?: Int] = [nil: 1] // ERROR: type 'Int?' does not conform to protocol 'Hashable' 更新:Swift 4.2 呜呜!你确定要这个吗?根据定义,“代码> NIL/COD>键不表示值,类型不能被桥接到 NSCORCHONE/CODE >,因为基础类型只支持非可选类型作为键和值。@ VADEA

使用
可选
键创建字典是否有解决方法?我知道一个合适的解决方案需要实现条件一致性,但在此之前我有什么选择吗

let dict: [Int?: Int] = [nil: 1]
// ERROR: type 'Int?' does not conform to protocol 'Hashable'
更新:Swift 4.2
呜呜!你确定要这个吗?根据定义,“代码> NIL/COD>键不表示值,类型不能被桥接到<代码> NSCORCHONE/CODE >,因为基础类型只支持非可选类型作为键和值。@ VADEAN是的,我不需要鸟瞰<代码> NSCORCHON/<代码>。下面是我的用例:我正在objective C运行时中构建类的类层次结构。这个dict将类映射到它们的子类数组。根类有一个“nil”超类,正如
class\u getSuperclass
@vadian所给出的,它可以桥接到
NSDictionary
,因为
nil
桥接到
NSNull
。相关:我个人只想用一个公开的
Wrapped?
属性来创建包装器类型a
struct
,当需要访问可选值时,只需参考
key.base
。因为
Optional
附带了很多无法在包装器本身上复制的烘焙语言功能(可选链接、可选绑定、隐式提升、糖模式等),所以IMO在包装器和基础值之间做出明确区分,提供了一个更一致的接口。@Hamish很好。如您所见,我跳过了添加地图和平面地图。我认为访问该值会更容易,我也可以直接存储它。你知道,我有点喜欢在没有/有些情况下对任何类型使用条件绑定