Block在整个iOS开发中无所不见,很重要,很重要,文本在这里block的简单使用介绍。我们可以简单地定义、使用block。

  1. Block和C的指针函数很像,但比C的函数灵活多了。废话了。。。。

    例子比较:

 //C函数
int funSum(int a, int b) {
return a + b;
} int main(int argc, const char * argv[]) {
@autoreleasepool { //定义了pointSum这种指针类型, 这种指针类型指向函数
typedef int (*pointSum) (int, int); //定义了一个指针变量ps, 赋值funSum
pointSum ps = funSum; //C函数调用
int a = ps(, ); // (*ps)(12, 23);
NSLog(@"a = %i", a);
}
return ;
} 
int main(int argc, const char * argv[]) {
@autoreleasepool { //定义了blockSum这种block的类型,注blockSum为类型名
typedef int (^blockSum) (int, int); //定义了一个blockSum类型的block变量bs 并为其赋值block块内容
blockSum bs = ^(int a, int b) {
return a + b;
};
int a = bs(, );
NSLog(@"a = %i", a);
}
return ;
}

  2. Block定义及使用

 void BlockDemo() { 

     //声明  一个名为blockSum返回值为int类型,接受两个int、int类型的参数的Block, 也可以写成这样 int (^blockSum) (int a, int b);
int (^blockSum) (int, int); //赋值 (这个名为blockSum的代码段所要做的事情)
blockSum = ^(int a, int b) {
return a + b;
}; //调用这个block赋值给变量a
int a = blockSum(, );
NSLog(@"a=%i", a); //a = 4
}
 typedef int (^blockSum) (int, int);     //typedef修饰的block类型,这种类型可以定义任意多,我们在开发中它来定义block很常见
void blockDome() {
//int c =100000000;
__block int c =; //此处是两个"_"
blockSum bs = ^(int a, int b){
a = ; //block代码快可以访问局不变量,但不能修改局不变量的值, 若要修改必须在定义该变量前加__block修饰
c = a + b;
return a + b;
}; NSLog(@"block修改前:c = %i", c);
bs(, )
NSLog(@"block修改后:c = %i", c);
}

  

关于Block的简单使用的更多相关文章

  1. OC block的简单使用

    http://blog.csdn.net/itpeng523/article/details/23965147 一.先用Xcode创建一个空工程 学习block之前先用弄懂c语言的函数指针 看代码: ...

  2. Block的简单使用

    代码块本质上是和其他变量类似.不同的是,代码块存储的数据是一个函数体.使用代码块是,你可以像调用其他标准函数一样,传入参数,并得到返回值. 代码块本质上是变量,只不过它存储的数据是一个函数体,因此名字 ...

  3. Block很简单,就像delegate的简化版

    代理设计模式对于iOS开发的人来说肯定很熟悉了,代理delegate就是委托另一个对象来帮忙完成一件事情,为什么要委托别人来做呢,这其实是MVC设计模式中的模块分工问题,例如View对象它只负责显示界 ...

  4. 最直接的教你OC中Block的简单使用场景

    场景一: A控制器跳转到B控制器   --   B控制器事件处理通过Block回调给A控制器 A 跳转前界面如下 点击ToB按钮到控制器B 在控制器B中点击按钮返回到A界面如下             ...

  5. iOS Block的简单使用以及__block 和static修饰变量

    简单的代码总结,不足之处多多指教. //简单的使用 -(void)blockOne{ ; int(^BlockOne)(int) = ^(int num2) { return number*num2; ...

  6. iOS - Block的简单使用

    Block 的使用有两种: .独立Block .内联Block   <一>独立Block 使用方式   一.定义一个Block Object,并调用.   1.定义   // 定义一个Bl ...

  7. block的简单使用:点击按钮在另一个控制器内调用block内的代码

    1.自定义一个继承于UIButton的按钮 2.声明block: 返回值类型   函数名  参数列表 typedef void (^ButtonBlock)(UIButton *); @interfa ...

  8. sonar阻断级别错误(block)简单汇总

    1.代码里面包含PASSWORD.PWD 'PWD' detected in this expression, review this potentially hardcoded credential ...

  9. 实现下拉弹出视图和Block的简单实现

    实现效果如下: 实现代码如下: @interface ViewController ()<UIViewControllerTransitioningDelegate> { UILabel ...

随机推荐

  1. js禁止页面刷新禁止用F5键刷新,禁止右键

    <script     language="javascript"> //禁止用F5键 function     document.onkeydown() { if   ...

  2. LA 3231 - Fair Share

    You are given N processors and M jobs to be processed. Two processors are specified to each job. To ...

  3. Linux Posix线程条件变量

    生产者消费者模型 .多个线程操作全局变量n,需要做成临界区(要加锁--线程锁或者信号量) .调用函数pthread_cond_wait(&g_cond,&g_mutex)让这个线程锁在 ...

  4. [LeetCode] Encode String with Shortest Length 最短长度编码字符串

    Given a non-empty string, encode the string such that its encoded length is the shortest. The encodi ...

  5. Git原理及常用操作命令总结

    git原理介绍及操作 git 原理——

  6. java中jqGrid时间戳格式转换

    找到如下代码 if( !isNaN( date - 0 ) && String(format).toLowerCase() == "u") { //Unix tim ...

  7. 百度文库下载器 V2.3.4.3 支持豆丁百度文库道客巴巴

    支持豆丁百度文库道客巴巴免下载劵财富值导出word 下载地址: http://pan.baidu.com/s/1qYCmQde

  8. Python 【第九章】 Django基础

    在windows 命令行上安装Django 在CMD命令行中输入以下命令进行安装. pip install Django 在windows python安装目录上会出现 一个django-admin. ...

  9. Bzoj3894 文理分科

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 667  Solved: 389 Description  文理分科是一件很纠结的事情!(虽然看到这个题 ...

  10. Java开发环境搭建——Tomcat配置

    指定tomcat的JDK版本可能由于种种原因,系统的JAVA_HOME配置的JDK版本并不是当前需要的版本,而tomcat默认使用的是JAVA_HOME的JDK.可以通过修改tomcat/bin/ca ...