加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Swift中动态获取AnyObject的类型

发布时间:2020-12-14 05:37:04 所属栏目:百科 来源:网络整理
导读:我已经将参数传递给AnyObject的函数,因为可以传递任何东西.有没有办法通过动态获取对象的类型? 通常这是泛型的.有一个AnyObject在代码中不与ObjC交互的很少的理由.如果您根据类型执行不同的操作,那么您实际上可能会使用重载. 也就是说,有几种方法来访问类型
我已经将参数传递给AnyObject的函数,因为可以传递任何东西.有没有办法通过动态获取对象的类型?
通常这是泛型的.有一个AnyObject在代码中不与ObjC交互的很少的理由.如果您根据类型执行不同的操作,那么您实际上可能会使用重载.

也就是说,有几种方法来访问类型.通常,您希望根据类型运行不同的代码,因此您可以使用开关:

let x:AnyObject = "asdf"
switch x {
case is String: println("I'm a string")
default: println("I'm not a string")
}

要么

let x:AnyObject = "asdf"
switch x {
case let xString as String: println("I'm a string: (xString)")
default: println("I'm not a string")
}

或者你可以使用if:

if let string = x as? String {
  println("I'm a string: (string)")
}

有关更多讨论,请参阅Swift编程语言中的“为Any和AnyObject类型转换”.

但是,除非您使用ObjC代码,否则很少有理由使用Any或AnyObject.泛型和超载是用于解决Swift中这些问题的工具.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读