在Swift中动态获取AnyObject的类型

在Swift中动态获取AnyObject的类型,第1张

概述我已经将参数传递给AnyObject的函数,因为可以传递任何东西.有没有办法通过动态获取对象的类型? 通常这是泛型的.有一个AnyObject在代码中不与ObjC交互的很少的理由.如果您根据类型执行不同的 *** 作,那么您实际上可能会使用重载. 也就是说,有几种方法来访问类型.通常,您希望根据类型运行不同的代码,因此您可以使用开关: let x:AnyObject = "asdf"switch x { 我已经将参数传递给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中这些问题的工具.

总结

以上是内存溢出为你收集整理的在Swift中动态获取AnyObject的类型全部内容,希望文章能够帮你解决在Swift中动态获取AnyObject的类型所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1040439.html

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

发表评论

登录后才能评论

评论列表(0条)

保存