文档章节

block的使用(一)

我爱觉觉
 我爱觉觉
发布于 2016/02/29 10:42
字数 345
阅读 25
收藏 0

        //1)无参无返回值的block

        //格式:

        // 定义block变量

        // 返回值类型 (^block变量名)(形参类型列表);

        

        // 定义block类型并且赋值

        // 返回值类型 (^block变量名)(形参类型列表)= ^(形参列表){代码块;}

        // 形式1: void^block变量名)() = ^(){};

        // 形式2: void^block变量名)() = ^{};

        

        // 定义变量

        void (^sbblock)();

        void (^sb1)() = ^() {

            NSLog(@"haha");

        };

        

        void (^sb2)() = ^{

            NSLog(@"22");

        };

        

        // 执行block

        // 格式:block变量名(实参)

        // sbblock(); EXC_BAD_ACCESS(code=1,) 野指针访问报错,因为sbblock没有初始化。

        sb1();

        sb2();

        

        // 2)有参无返回值的block

        // 形参列表的格式: 数据类型 变量名

        void (^myblock1)(int a); //定义一个无返回值有一个参数的block变量,变量名为mblock1

        myblock1 = ^(int a) {

            NSLog(@"a = %d",a);

        };

        

        myblock1(2);

        

        // 3)有参数有返回值的block

        int (^myblock2)(int a, int b) = ^(int a, int b){

            return a+b;

        };

        // 执行block并且接收返回结果

        int sum = myblock2(20,34);

        NSLog(@"%d",sum);


© 著作权归作者所有

共有 人打赏支持
我爱觉觉
粉丝 2
博文 49
码字总数 10640
作品 0
海淀
IOS 学习---block块的内存管理,及解决循环引用的方法

在MRC环境下: block对局部变量的影响: 使用局部变量:a到block块中,为了在block中能够使用这个变量,将a拷贝放到常量区 域 int a = 10; 如果访问局部对象,为了在block中能够使用这个对象,...

fengyun321
2015/09/14
140
0
iOS之Block详解

iOS Block实例:https://my.oschina.net/Jacedy/blog/842167 一、Block定义 闭包是一个函数(或指向函数的指针),再加上该函数执行的外部的上下文变量(有时候也称作自由变量)。 block 实际...

_子墨
2016/03/01
371
0
Magento Block设计分析

Magento中Block是一个很重要的组件,它在Block中充当非常重要的角色,下面我们来分析一下Magento中Block是怎样设计的,我们应该怎样使用这个重要的角色。 1、Magento Block类图: 图1: 继承V...

书一
2013/01/10
0
2
iOS之Block-终结篇

前言 小时候家长和老师都教导我们,做人要善良要懂得吃亏.长大以后,才知道这样真的不好,有的时候你越是忍让越是糟糕,难受的是自己,有一句话说的很好:草木有本心,何须美人折? 活出自己最重要!...

有毒的程序猿
2017/03/02
0
0
IOS--Block入门

Block介绍 一:Block是一种具有匿名功能的内嵌函数,特性如下: (1):如一般函数能拥有带有型态的参数 (2):拥有回传值 (3):可以获取和选择性地修改作用域的状态 二:Block的使用 Bl...

Mark_Jiang
2016/01/07
38
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

函数调用约定 (cdecl stdcall)

函数调用约定 (cdecl stdcall) 在 C 语言里,我们通过阅读函数声明,就知道怎么携带参数去调用函数,也能在函数体定义内使用这些参数。但是 CPU 并不直接完成函数调用的传参操作,这需要人为...

傅易
3分钟前
0
0
Python 核心编程 (全)

浅拷贝和深拷贝 1.浅拷贝:是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容。相当于把变量里面指向的一个地址给了另一个变量就是浅拷贝,而没有创建一个新的对象,如a=b...

代码打碟手
6分钟前
0
0
mysql5.7 修改datadir

mysql 的默认存储路径为 /var/lib/mysql ,修改后为 /data/mysql 关闭服务 service mysql stop 复制mysql 数据文件到新的目录 cp -rp /var/lib/mysql /data 查看原目录的权限,如果新目...

hotsmile
22分钟前
0
0
证书安装指引之Tomcat 证书部署

Tomcat 证书部署 0 申请证书 1 获取证书 如果申请证书时有填写私钥密码,下载可获得Tomcat文件夹,其中有密钥库 www.domain.com.jks; 如果没有填写私钥密码,证书下载包的Tomcat文件夹中包括...

吴伟祥
27分钟前
0
0
ConcurrentHashMap1.7和1.8的底层不同实现

1.Hashmap和HashTable在线程安全方面的优劣? Hashmap多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获取Entry。 Hash...

刘祖鹏
43分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部