美文网首页
Swift-可选链式调用

Swift-可选链式调用

作者: 周二可 | 来源:发表于2016-05-19 17:59 被阅读424次

概念

所谓可选链式调用就如同其名称那样可以看成一个个链环联接在一起的链条。每个链节就是一个获得可选值的调用(包括通过属性和下标来获取的以及函数返回的可选类型)。如果整个链条上每个链节都能获取值则调用成功,反之只要有一个链姐获取的可选值为nil整个调用链条返回nil。

格式

与强制解包(!)类似在想要调用的属性、方法、或下标的可选值后面放(?)。

// 调用获得可选类型属性的可选链
john.residence?.numberOfRooms      
           
// 调用获得可选类型下标的可选链
// john的residence是可选属性
firstRoomName = john.residence?[0].name  
// 通过key"Dave"取出的值是可选属性
var testScores = ["Dave": [86, 82, 84], "Bev": [79, 94, 81]]
testScores["Dave"]?[0]

// 调用返回可选类型的方法的可选链,
john.residence?.address?.buildingIdentifier()?.hasPrefix("The")

注意点<>

  • Swift 的可选链式调用和 Objective-C 中向nil发送消息有些相像,但是 Swift 的可选链式调用可以应用于任意类型,能检查调用是否成功。并且不会像强制解包那样出现崩溃。
    • 如果你访问的值不是可选的,可选链式调用将会返回可选值。
    • 如果你访问的值就是可选的,可选链式调用不会让可选返回值变得“更可选”。
  • ** 使用了可选链之后即使原本应该返回的结果不是可选类型也会被包装成对应的可选类型。**
  • 通过可选链式调用访问一个Int值,将会返回Int?,无论使用了多少层可选链式调用。
  • 类似的,通过可选链式调用访问Int?值,依旧会返回Int?值,并不会返回Int??。

相关文章

  • Swift-可选链式调用

    概念 所谓可选链式调用就如同其名称那样可以看成一个个链环联接在一起的链条。每个链节就是一个获得可选值的调用(包括通...

  • swift-可选链式调用

  • swift-可选链式调用

    结论: 如果你访问的值不是可选的,可选链式调用将会返回可选值(eg: 可选链式调用访问一个String值,将会返回...

  • swift重温笔记(可选链式调用)

    使用可选链式调用代替强制展开 为可选链式调用定义模型类 通过可选链式调用访问属性 通过可选链式调用调用方法 通过可...

  • 可选链式调用

    可选链式调用(Optional Chaining)wiki 可选链式调用:是一种可以在当前值可能为nil的可选值请...

  • [iOS笔记]Swift中的可选链式调用的注意点

    通过可选链式调用访问属性 下面代码中的赋值过程是可选链式调用的一部分,这意味着可选链式调用失败时,等号右侧的代码不...

  • Optional Chain(可选链式调用)

    // 可选链式调用//“可选链式调用是一种可以在当前值可能为nil的可选值上请求和调用属性、方法及下标的方法。如果...

  • Swift学习笔记十三之可选链式调用

    1、可选链式调用:通过点语法调用属性、方法、下标 // 可选链式调用可以在当前值为nil的情况下调用属性,方法,下...

  • 可选链式调用

    可选链式调用是一种可以在当前值可能为nil的可选值上请求和调用属性、方法及下标的方法。如果可选值有值,那么调用就会...

  • swift 可选链式调用

    可选链式调用是指在当前值可能为ni的情况下,用当前值去获取它的属性、方法及其下标如果可选值有值,调用就会成功如果可...

网友评论

      本文标题:Swift-可选链式调用

      本文链接:https://www.haomeiwen.com/subject/sodgrttx.html