小工具      在线工具  汉语词典  css  js  c++  java

swift3闭包学习

Swift学习 额外说明

收录于:43天前


class FirstViewController: TFBaseViewController {

    var ljload :LJDownLoadNetImage?  //声明
    
    
    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.white
        self.setTopNavBarTitle("首页")
         ljload = LJDownLoadNetImage()
        self.initTest()
    }


    //MARK: 点击事件
    func buttonClick(_ sender:UIButton)
    {
        //避免循环引用,weak当对象销毁的时候,对象会被指定为nil
        //weak var weakSelf = self //对象推到,省略了ViewController
        weak var weakSelf : FirstViewController? = self  //等同与上面的表达式
        //数据回调
        ljload?.loadData({ (jsonData:String) in
            print("获取到的数据:\(jsonData)")
            
            weakSelf?.view.backgroundColor = UIColor.red
        })
       
        //let vc = TFNetImageViewController()
        //self.navigationController?.pushViewController(vc, animated: true)
    }


闭包

import Foundation

class LJDownLoadNetImage: NSObject {
   
    //闭包类型 (参数列表)->(返回值类型)
    func loadData(_ finishCallBack: @escaping (_ jsonData:String) -> ()) {
        //1. 发送异步网络请求
        //放在此处,可以不加@escaping
//         finishCallBack()
     
        if #available(iOS 8.0, *) {
            DispatchQueue.global().async { 
                print("发送异步网络请求")
                
                DispatchQueue.main.async(execute: {
                    
                    //放在此处必须要加@escaping
                    finishCallBack("jsonData")
                })
            }
        }
    }
}

控制台打印的数据

发送异步网络请求

获取数据:json数据



. . .

相关推荐

额外说明

列计数与第 1 行的值计数不匹配

解决: 是由于类似 INSERT INTO table_name(col_name1, col_name2, col_name3) VALUES('value1','value2'); 语句中,前后列数不等造成的, 在网上看了好长时间,打印了的sql看了

额外说明

企业级实战——品优购电商系统开发-17.18.创建数据库表与工程搭建

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

机器学习进阶 第一节 第十四课

逻辑回归算法案例分析 概述 数据预处理 准备训练测试数据 使用逻辑回归进行良/恶性肿瘤预测任务 性能分析 概述 良/恶性乳腺癌肿瘤预测. 数据预处理 import pandas as pd import numpy as np # 根据官方数据构建类别

额外说明

【基本tcp/ip模型】c.s模型(1)

文章目录 前言 一、c.s模型和tcp/ip协议是什么? client/server ----- 客户端/服务器模型 套接字编程与socket编程 二、网络头文件 网络库 三、打开网络库 WSAStartup 四、版本校验 总结 前言 网络编程是基于tc

额外说明

idea设置mybatis的mapper.xml默认模板

mapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis

额外说明

[JS进阶] JS 之Blob 对象类型

什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型。 oracle 中也有类似的栏位类型。 在 [JS进阶] HTML5 之文件操作(file) 这一篇中用到了File对象,而实际上 file 对象只是 blob 对象的一

额外说明

大数据学习笔记28:MR案例——多输出源处理成绩

文章目录 一、提出任务 原始成绩数据 任务1、不同学生成绩情况生成不同结果文件 任务2、每个结果文件统计不同学生各科平均分 二、准备工作 1、启动hadoop服务 2、上传数据文件到HDFS 3、创建Maven项目MultiOutScore 4、修改po

额外说明

VB讲课笔记11:多重窗体与环境应用

VB讲课笔记11:多重窗体与环境应用 主要考查多重窗体的应用以及VB工程结构。以选择题和操作题两种形式考核。选择题中所占分值较少,约占总分的1%,多属于概念题。操作题中,主要出现在简单应用题,操作题试题的抽中概率约为4%。 一、多重窗体应用程序 一个VB

额外说明

MVC 标签使用

[VS2010 Online]初窺ASP.NET MVC(3) - 控制項的使用 在 ASP.NET MVC 中,畫面的處理需要使用到的控制項都繼承於 HtmlHelper 類別, 在 2.0 的版本中又多新增了一些 Extensions,我們可以透過下

额外说明

SpringBoot的配置环境属性

SpringBoot的配置环境属性 在本文中,我们将讨论SpringBoot的配置环境属性。我们将了解如何使用这些属性来配置我们的应用程序,以便在不同的环境中运行。我们还将了解如何使用SpringBoot的配置文件来管理这些属性。最后,我们将介绍一些最佳

ads via 小工具