OC Bock的使用
//无参无返回值
void(^theBlock1)() = ^(){};//有参无返回值
void(^theBlock2)(int,int) = ^(int a,int b){};//无参有返回值
int(^theBlock3)() = ^(){return 0;
};//有参有返回值
int(^theBlock4)(int,int) = ^(int a,int b){return a+b;
};
3、使用typedef定义
typedef int (^MyBlock)(int,int); int main(int argc, const char * argv[]) {@autoreleasepool {MyBlock theBlock = ^(int a,int b){return a+b;};NSLog(@"%d",theBlock(1,1));}return 0;
}
4、定义成方法参数
- (void)callDemo:(void(^)(NSString * str))theBlock
{
//接收到外界传入的block,在这个方法里面调用一下
theBlock(@“AA");
}
5、定义成属性
typedef void(^MyBlock)(int,int);
@interface ViewController ()@property (nonatomic,assign) int num;
/// block定义成属性
@property (nonatomic,copy) void (^theBlock1)();
@property (nonatomic,copy) MyBlock theBlock2;
@end
- 单纯的定义一个block,那么block存放在全局区
- block访问外部变量的时候,外部变量在内存中存储区域的变化:
- 访问前变量存放在栈区,访问时变量存放在栈区,访问后变量存放在栈区
- block修改外部变量的时候,外部变量在内存中存储区域的变化:
- 修改前变量存放在栈区(被__block修饰后存储位置不受影响),修改时变量存放在堆区,修改后变量存放在堆区
OC Bock的使用相关推荐
- OC 组合实现多继承
OC无法完全先C++使用多继承,但可以采用组合的模式来代替继承模式.(协议实现)实现多继承的代码:举例现在ClassC需要继承ClassA中methodA.ClassB中methodB,具体的代码为: ...
- OC实用转换model的工具
OC实用转换model的工具 说明 这是本人写的一个专门用来将json数据直接转换生成Model文件的工具,目的是为了让你从写Model文件的繁琐过程中解脱出来,提升效率以及减少出错的几率,工具的特点 ...
- OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)
一.NSNumber OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的 NS ...
- OC学习篇之---对象的拷贝
在前一篇文章中我们说到了如何解决对象的循环引用问题:http://blog.csdn.net/jiangwei0910410003/article/details/41926369,这一篇文章我们就来 ...
- OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法
一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化 ...
- oc 协议 回调 静态成员_OC底层原理探究:Category、关联对象和block本质
1.分类Category的使用 // 给MJPerson类添加分类 @interface MJPerson : NSObject - (void)run; @end@implementation MJ ...
- 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js
iOS js oc相互调用(JavaScriptCore) 从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了. 下面我们就简单了解一下这个框 ...
- 6 OC 中的isa 指针
目录 一 isa 指针 二 类对象中的superclass 一 isa 指针 isa 指针 ,OC 中的对象都是有的 如下图所示,实例对象isa 指针指向 类对象,类对象的isa 指针指向 元类对象 ...
- 7 OC 中class 类的结构
目录 一 OC 中class 的结构 https://opensource.apple.com/tarballs/objc4/ 在最新的objc源码中 化繁就简来看的话 是以下结构 struct ob ...
最新文章
- ARP监控工具ARPalert
- Cannot change version of project facet Dynamic Web Module to 2.5 问题的解决方法
- python开发安卓程序-用python开发android应用(1)
- Java EE 8发生了什么? (第2部分)
- java优秀算法河内之塔_河内塔的Java程序
- 工作分析文献综述_北大教授分析了124 篇不合格硕士学位论文,发现了6个典型问题!...
- 3110: [Zjoi2013]K大数查询
- 麦克纳姆轮全向移动机器人速度分解
- android消息发送字符串,Android aSmack-如何对文件发送进行自定义消息...
- es6箭头函数_如何优雅地使用 ES6 箭头函数
- (8)Redis-Cluster集群理论及实践【中】
- java 卡密_【java实现点卡生成】
- 如何将mp4视频格式转换成mov视频
- 一个医院为何要架设数字网络时钟系统(电子时钟系统)
- CTF_crypto常见加密密文特征
- ddns-go搭建ddns(动态域名解析)
- (纪中)2431. 移动奶牛(herding)
- 1.5 Nginx进程模型解析
- 自动化部署工具瓦力(walle)的简单项目配置步骤
- 密码学认证协议名词解释,AKE,PKI,IBC,PKG,KGC,