欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift中Optional值的鏈?zhǔn)秸{(diào)用學(xué)習(xí)筆記

 更新時(shí)間:2016年07月07日 18:27:10   作者:琿少  
這篇文章主要介紹了Swift中Optional值的鏈?zhǔn)秸{(diào)用學(xué)習(xí)筆記,Optional鏈?zhǔn)荢wift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

Swift中的Optional值有這樣的特性,當(dāng)對其進(jìn)行可選拆包時(shí),即使用?進(jìn)行Optional類型值的取值時(shí),如果Optional值不為nil,則會返回原始類型的數(shù)據(jù)值,如果為nil,則會返回nil。因此,當(dāng)使用?對Optional拆包后進(jìn)行方法、屬性或者下標(biāo)的調(diào)用時(shí),如果有值,則會成功相應(yīng)調(diào)用,如果沒有值,則會調(diào)用失敗,返回nil。

注意:使用!則會進(jìn)行強(qiáng)制拆包,這時(shí)如果Optional值為nil,則會出現(xiàn)運(yùn)行時(shí)錯誤,因此開發(fā)者在使用!進(jìn)行強(qiáng)制拆包時(shí),必須確認(rèn)Optional類型值不為nil。

當(dāng)對可選值進(jìn)行可選拆包并調(diào)用其屬性或方法后,無論原屬性或者方法返回值是什么類型的,都會被包裝成Optional值類型。當(dāng)使用?對一個Optional值進(jìn)行拆包并調(diào)用其方法時(shí),方法的返回值一會被包裝為Optional類型,示例如下:

class Myclass {
  var cls:MyClassTwo?
  
}
class MyClassTwo {
  func run() -> String {
    return "run"
  }
}

let obj:Myclass = Myclass()
//將返回nil
obj.cls?.run()

在進(jìn)行Optional鏈調(diào)用的時(shí)候,會遵守如下一些特性:

1.如果進(jìn)行?拆包Optional值的屬性或者方法返回值原來為非Optional值,則會包裝成Optional值。

2.如果進(jìn)行?拆包Optional值的屬性或者方法返回值原來為Optional值,則依然會返回Optional值,并且并不會進(jìn)行Optional值類型的嵌套。

3.由于使用Optional值?可選拆包時(shí)會將其屬性和方法的返回值都包裝成Optional類型的,因此使用?可以進(jìn)行Optional鏈?zhǔn)秸{(diào)用,這其間,有一個環(huán)節(jié)調(diào)用失敗,整個鏈都會返回nil。

示例如下:

let obj:Myclass = Myclass()
//將返回nil
(obj.cls?.run())?.startIndex

相關(guān)文章

  • iOS Swift讀取本地json文件報(bào)錯的解決方法

    iOS Swift讀取本地json文件報(bào)錯的解決方法

    只要是app開發(fā)者都知道,從服務(wù)器端獲得的數(shù)據(jù)要不就是json格式的數(shù)據(jù),要么就是xml格式的數(shù)據(jù),而這篇文章主要給大家介紹了關(guān)于iOS Swift讀取本地json文件報(bào)錯的解決方法,需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • SwiftUI自定義導(dǎo)航的方法實(shí)例

    SwiftUI自定義導(dǎo)航的方法實(shí)例

    導(dǎo)航是我們平時(shí)經(jīng)常會遇到的一個需求,下面這篇文章主要給大家介紹了關(guān)于SwiftUI自定義導(dǎo)航的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Swift利用CoreData實(shí)現(xiàn)一個上班簽到的小工具

    Swift利用CoreData實(shí)現(xiàn)一個上班簽到的小工具

    這篇文章主要給大家介紹了關(guān)于Swift利用CoreData實(shí)現(xiàn)一個上班簽到小工具的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • swift?framework使用OC?代碼兩種方式示例

    swift?framework使用OC?代碼兩種方式示例

    這篇文章主要為大家介紹了swift?framework使用OC?代碼兩種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 詳解Swift編程中下標(biāo)的用法

    詳解Swift編程中下標(biāo)的用法

    這篇文章主要介紹了Swift編程中下標(biāo)的用法,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift是Swift函數(shù)響應(yīng)式編程的一個開源庫,由Github的ReactiveX組織開發(fā),維護(hù)。下面這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)之基礎(chǔ)篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • 詳解Swift編程中的常量和變量

    詳解Swift編程中的常量和變量

    這篇文章主要介紹了Swift編程中的常量和變量,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • Swift使用enum抹平數(shù)組元素差異實(shí)例詳解

    Swift使用enum抹平數(shù)組元素差異實(shí)例詳解

    這篇文章主要為大家介紹了Swift使用enum抹平數(shù)組元素差異實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼

    swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼

    正則表達(dá)式使用單個字符串來描述、匹配一系列符合某個句法規(guī)則的字符串。本文重點(diǎn)給大家介紹swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼,需要的朋友參考下吧
    2017-08-08
  • Swift實(shí)現(xiàn)表格視圖單元格多選

    Swift實(shí)現(xiàn)表格視圖單元格多選

    這篇文章主要為大家詳細(xì)介紹了Swift實(shí)現(xiàn)表格視圖單元格多選,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論