欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

Swift中_Any和AnyObject的类型如何转换?

发布时间:2017-09-08 22:36  回复:0  查看:2302   最后回复:2017-09-08 22:36  
本文和大家分享的主要是swift _Any AnyObject 的类型转换相关内容,一起来看看吧,希望对大家 学习swift有所帮助。
   1.AnyObject
  AnyObject 表示任何类型的实例
   class  Person{
   var name:String?
   init(name:String) {
   self.name = name
  }
  }
   class  EmployeePerson {
   var company:String?
   init(name:String,company:String) {
   self.company = company
   super. init(name: name)
  }
  }
   class  StudentPerson {
   var school:String?
   init(name:String,school:String) {
   self.school = school
   super. init(name: name)
  }
  }
let employee1 = Employee(name:" 张三 ",company:"apple 公司 ")
let employee2 = Employee(name:" 李四 ",company:"google 公司 ")
let members:[AnyObject] = [employee1,employee2]
   for item  in members{
   let employee = item  as!Employee
  print(" 员工公司: \(String(describing: employee.company))")
  }
   2.Any类型
  Any 类型可以表示任何类型,比如类,函数, Int String ,元祖等
   var things = [Any]()
  things.append(42)
  things.append("hello")
  things.append((2,5))
  things.append(Employee(name:" 梅梅 ", company: " 中国航天公司 "))
  things.append({(name:String) -> String  in " 你好 ,\(name)"})
   for thing  in things{
   switch thing{
   case  let someInt  as Int:
  print(" 整数: \(someInt)")
   case  let someString  as String:
  print(" 字符串 :\"\(someString)\"")
   case  let (x,y)  as (Int,Int):
  print(" 元组类型: \(x,y)")
   case  let employee  as Employee:
  print(" 员工 :\(String(describing: employee.name)), 公司 :\(String(describing: employee.company))")
   case  let stringConverter  as(String)->String:
  print(stringConverter(" 小明 "))
   default:
  print(" 其他 ")
  }
  }
  注意
  在switch 语句的 case 语句里使用类型转换操作符 as 而不是 as! ,来检查和转换到一个明确的数据类型,在 switch case 语句中这样的检查总是安全的
Swift中_Any和AnyObject的类型如何转换?

QQ截图20170409201802.png (111.53 KB, 下载次数: 0)

下载附件

12 秒前 上传

Any AnyObject 的类型转换结果输出
来源: 简书
您还未登录,请先登录

热门帖子

最新帖子