在Swift中向下转换NSObject

时间:2016-07-15 03:46:28

标签: ios swift cocoa

我正在学习Swift,并且正在尝试理解有关向下转换的内容。 NSDictionary在Swift中表示为[NSObject:AnyObject]。据我所知,这可以被下载到更具体的类型(例如[Int:String])。当我们谈论Objective-C时,我知道NSObject是基类,但是如何在Swift中将它下载到String或Integer?据我所知,Swift本机类型不是NSObject的子类。

1 个答案:

答案 0 :(得分:5)

好问题!实际发生的事情是Objective-C和Swift之间的交互中的一些魔力,让你的生活更轻松:如果你的原始[String: Int]包含NSDictionary s,你可以向下转换为NSString NSNumber秒。虽然NSStringNSNumber确实与StringInt的类型不同,但Apple有明显的相关性决定为您进行转换。换句话说,它起作用的原因与此相同:

let object = NSNumber(value: 4)
let swiftVersion = object as Int