Skip to main content
 首页 » 操作系统

ios之swift 中的字典值作为字符串(而不是 NSString)

2024年01月01日48langtianya

这真的是我在 swift 中不理解的地方: 它可以总结为以下代码:

var dic: Dictionary<String, AnyObject> = ["please": "show me the way"] 
var way: String? = dic["please"] as? String 

编译失败并抛出:'String' is not a subtype of '(String, AnyObject)'

但是,如果我改为编写以下代码:

var way: String? = dic["please"] as? NSString 

一切都是绿色的。这就像 String 不被识别为 AnyObject 的子类,但 NSString 是。

所以请告诉我路:)

请您参考如下方法:

确实:

// error: Non-class type 'String' cannot conform to class protocol 'AnyObject' 
extension String : AnyObject { 
} 

因此您应该改用Any。