最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)中Swift逃逸閉包知識

 更新時間:2018年02月11日 10:38:27   作者:sz_vcp2007  
這篇文章主要介紹了iOS開發(fā)中Swift逃逸閉包的相關(guān)知識點(diǎn)以及需要注意的地方,需要的朋友收藏下吧。

逃逸閉包必須滿足下面2個條件:

1、閉包作為一個參數(shù)傳到函數(shù)中

2、閉包在函數(shù)返回之后才執(zhí)行

需要在參數(shù)前面加入標(biāo)注: @escaping,用來指明這個閉包是允許“逃逸”出這個函數(shù)的。

注意:將一個閉包標(biāo)記為 @escaping 意味著你必須在閉包中顯式地引用

import UIKit

/** 逃逸閉包滿足下面2個條件:
 * 1、handle閉包作為一個參數(shù)傳到函數(shù)payRequest中
 * 2、并且handle閉包在函數(shù)返回之后才執(zhí)行
 * 需要在參數(shù)前面加入標(biāo)注: @escaping,用來指明這個閉包是允許“逃逸”出這個函數(shù)的
 * 注意:將一個閉包標(biāo)記為 @escaping 意味著你必須在閉包中顯式地引用 self
 */
func payRequest(handle:@escaping (Data?, URLResponse? ,Error?) -> Void) {
  let urlStr = URL(string: "http://www.baidu.com")
  let session = URLSession(configuration: .default)
  session.dataTask(with: urlStr!, completionHandler: handle)
}
func someFunctionWithNonescapingClosure(closure: () -> Void) {
  closure()
}
class SomeClass {
  var x = 10
  func doSomething() {
    payRequest { (data, resp, error) in
      x = 100 // 此處編譯錯誤,必須顯式地引用 self
    }
    someFunctionWithNonescapingClosure { x = 200 }
  }
}

在Swift標(biāo)準(zhǔn)庫中,有很多這種類型的閉包,比如下面的異步請求的方法:

open func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask

open func dataTask(with url: URL, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask

都符合文章開頭提到的逃逸閉包的形成條件。

相關(guān)文章

  • iOS10 適配以及Xcode8配置總結(jié)

    iOS10 適配以及Xcode8配置總結(jié)

    這篇文章主要介紹了iOS10 適配以及Xcode8配置總結(jié)的相關(guān)資料,本文通過圖文并茂的形式給大家介紹,非常不錯具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • iOS實(shí)現(xiàn)圖片保存與搜索功能

    iOS實(shí)現(xiàn)圖片保存與搜索功能

    這篇文章主要介紹了iOS實(shí)現(xiàn)圖片保存與搜索功能的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • iOS動畫解析之支付寶支付打鉤動畫的實(shí)現(xiàn)方法

    iOS動畫解析之支付寶支付打鉤動畫的實(shí)現(xiàn)方法

    支付寶支付打鉤動畫相信對大家來說都不陌生,這篇文章主要給大家介紹了關(guān)于iOS動畫解析之支付寶支付動畫的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • IOS開發(fā)代碼分享之設(shè)置UISearchBar的背景顏色

    IOS開發(fā)代碼分享之設(shè)置UISearchBar的背景顏色

    在項(xiàng)目開發(fā)中,我們經(jīng)常要用到UISearchBar,在網(wǎng)上看到了很多關(guān)于去除掉他背景色的方法,都已經(jīng)失效了,今天來分享一個正常使用的方法,希望能幫到大家
    2014-09-09
  • IOS 貝塞爾曲線(UIBezierPath)屬性、方法整理

    IOS 貝塞爾曲線(UIBezierPath)屬性、方法整理

    這篇文章主要介紹了IOS 貝塞爾曲線(UIBezierPath)屬性、方法的相關(guān)資料,這里整理了貝塞爾 曲線的基礎(chǔ)資料,對屬性及相應(yīng)的方法一一做了詳解,需要的朋友可以參考下
    2016-11-11
  • iOS 無卡頓同時使用圓角、陰影和邊框的實(shí)現(xiàn)

    iOS 無卡頓同時使用圓角、陰影和邊框的實(shí)現(xiàn)

    這篇文章主要介紹了iOS 無卡頓同時使用圓角、陰影和邊框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • iOS 10新的通知機(jī)制中添加圖片的方法詳解

    iOS 10新的通知機(jī)制中添加圖片的方法詳解

    這篇文章主要介紹了iOS 10新的通知機(jī)制中添加圖片的方法,文中介紹的非常詳細(xì),相信對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • iOS 自定義返回按鈕保留系統(tǒng)滑動返回功能

    iOS 自定義返回按鈕保留系統(tǒng)滑動返回功能

    這篇文章主要介紹了iOS 自定義返回按鈕,保留系統(tǒng)滑動返回功能,實(shí)現(xiàn)方法非常簡單,具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-01-01
  • 詳解iOS 輕松獲取當(dāng)前控制器的正確方式

    詳解iOS 輕松獲取當(dāng)前控制器的正確方式

    這篇文章主要介紹了詳解iOS 輕松獲取當(dāng)前控制器的正確方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 詳解iOS 用于解決循環(huán)引用的block timer

    詳解iOS 用于解決循環(huán)引用的block timer

    這篇文章主要介紹了詳解iOS 用于解決循環(huán)引用的block timer,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論

龙川县| 北碚区| 东至县| 灵山县| 万盛区| 盱眙县| 融水| 宁陕县| 大连市| 平顶山市| 丽水市| 南部县| 明星| 临漳县| 洪洞县| 灌南县| 虞城县| 龙南县| 鹰潭市| 淮阳县| 吉林省| 娄烦县| 双柏县| 广丰县| 迁安市| 望奎县| 斗六市| 双流县| 祁阳县| 丹东市| 井研县| 长宁县| 隆德县| 宁国市| 梧州市| 淄博市| 临泽县| 同仁县| 门头沟区| 阳新县| 博罗县|