0

Dictionary 是一种桥接类型,为什么我可以从 Swift 字典切换到 NSDictionary 而不是相反?(编译错误:NSDictionary 不能转换为 'Dictionary')

根据苹果的文档:

所有 NSDictionary 对象都可以桥接到 Swift 字典,因此 Swift 编译器在导入 Objective-C API 时将 NSDictionary 类替换为 [NSObject: AnyObject]。

import Foundation

var swiftDict = ["0": "zero"]

let nsDict:NSDictionary = swiftDict
let backToSwiftDict:Dictionary = nsDict
4

2 回答 2

2

这是正确的,但您必须执行从 NSDictionary 到 Dictionary 的类型安全转换

var swiftDict = ["0": "zero"]

let nsDict: NSDictionary = swiftDict
let backToSwiftDict: Dictionary = nsDict as Dictionary
于 2015-06-01T10:59:59.687 回答
1

...或者您可以将其转换回具有类型安全字段的字典...

var swiftDict = ["0": "zero"]
let nsDict:NSDictionary = swiftDict
let backToSwiftDict = nsDict as! [String:String]
于 2015-06-01T11:02:40.230 回答