zoukankan      html  css  js  c++  java
  • Swift-闭包使用及解决循环引用问题

    Swift中闭包使用参考OC中block使用,基本一致

    //    闭包类型 首先写(参数列表)->(返回值类型)
        func loadData(callBack : (jsonData:String)->()){
            
            dispatch_async(dispatch_get_global_queue(0, 0)) { 
                print("网络请求(NSThread.currentThread())")
                
                dispatch_sync(dispatch_get_main_queue(), { 
                    print("获取到数据(NSThread.currentThread())")
                    callBack(jsonData: "数据")
                })
            }
        }

    解决Swift中闭包循环引用有三种方法:

      1.跟oc一样,使用weak(oc是__weakSelf)

      2.简化第一种方法tools?.loadData({[weak self] (jsonData) in}) 这里self需要解包(推荐使用)

      3.简化第一种方法tools?.loadData({[unowned self] (jsonData) in})这种方法当self为空就会崩溃

  • 相关阅读:
    css3基础篇二
    css3基础篇一
    react基础篇六
    react基础篇五
    react基础篇四
    react基础篇三
    react基础篇二
    react基础篇一
    矩阵
    POJ 3071 Football
  • 原文地址:https://www.cnblogs.com/WJJ-Dream/p/5830147.html
Copyright © 2011-2022 走看看