‘(NSObject,AnyObject)’不能转换为’String’

‘(NSObject,AnyObject)’不能转换为’String’,第1张

概述如何将类型对象(NSObject,AnyObject)转换为String类型? 在下面方法的第一行的末尾,因为String导致编译器错误: '(NSObject, AnyObject)' is not convertible to 'String' 将街道转换为NSString而不是String编译,但我将街道转换为String,因为我想将它与placemark.name进行比较,它具有Strin 如何将类型对象(NSObject,AnyObject)转换为String类型?

在下面方法的第一行的末尾,因为String导致编译器错误:

'(NSObject,AnyObject)' is not convertible to 'String'

将街道转换为Nsstring而不是String编译,但我将街道转换为String,因为我想将它与placemark.name进行比较,它具有String!类型,而不是Nsstring.

我知道名字和街道是可选项,但我认为它们现在不是零,因为从MKLocalSearch返回的所有地方似乎都有非零名称和街道.

func formatPlacemark(placemark: CLPlacemark) -> (String,String) {    let street = placemark.addressDictionary["Street"] as String    if placemark.name == street {        // Do something    }}
String不是对象,因此您需要将其强制转换为Nsstring.我建议使用以下语法来强制转换它并同时解开它.不要担心将它与String类型的变量进行比较!因为它们兼容.这将有效:
func formatPlacemark(placemark: CLPlacemark) -> (String,String) {    if let street = placemark.addressDictionary["Street"] as? Nsstring {        if placemark.name == street {            // Do something        }    }}

这有一个额外的好处,如果“Street”不是你的字典中的有效键,或者如果对象类型不是Nsstring,那么这不会崩溃.它只是不会进入该区块.

如果你真的想要街道成为一个字符串,你可以这样做:

if let street:String = placemark.addressDictionary["Street"] as? Nsstring

但在这种情况下,它不会给你买任何东西.

总结

以上是内存溢出为你收集整理的‘(NSObject,AnyObject)’不能转换为’String’全部内容,希望文章能够帮你解决‘(NSObject,AnyObject)’不能转换为’String’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1042010.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存