swift学习日记-可选链(optional chaining)
可选链式调用(Optional Chaining)wiki 可选链式调用:是一种可以在当前值可能为nil的可选值请求和调用属性、方法或者下标。与Objective-C中向nil发送消息有些相像,但是swift可选链式调用可以作用于任何类型,并且能检查调用是否成功。 1 使用可选链式调用代替强制展开 通过在想调用的属性、方法或下标的可选值(optional value)后面跟一个?,可以定义一个可选链,与!类似,不同之处在于!可能会出发运行时错误。 class Person { var name: String? } let person = Person() print(person.name?.characters.count) // nil print(person.name!.characters.count) // 运行时错误 2 为可选链式调用定义模型类型 通过使用可选链式调用可以调用多层属性、方法和下标。这样可以在复杂的模型中向下访问各种子属性,并且判断能否访问子属性的属性、方法或下标。 3 通过可选链式调用访问属性 4 通过可选链式调用调用方法 5 通过可选链式访问下标 如下例子 ,存在一个Student类和一个Teacher类 class Student { var name: String?
func read() { print("read book") } } class Teacher { var students: [Student]? var numberOfStudent: Int? { get { return students?.count } }
subscript (i: Int) -> Student? { return self.students?[i] } } let teacher = Teacher() // 访问属性 print("number Of Student: (teacher.numberOfStudent)") // 访问方法 teacher.students?[0].read() // 访问下标 print("first Student: (teacher[0])") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |