深入研究Block捕获外部变量和__block实现原理 EOCNetworkFetcher.h typedef void (^EOCNetworkFetcherCompletionHandler)(NSData *data); @interface EOCNetworkFetcher : NSObj ...
分类:
其他好文 时间:
2016-09-09 08:47:38
阅读次数:
721
Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这个新功能“Blocks”。从那开始,Block就出现在iOS和Mac系统各个API中,并被大家广泛使用。一句话来形容Blocks,带有自动变量(局部变量)的匿名函数。 Block在OC中的实现 ...
分类:
其他好文 时间:
2016-08-29 09:10:03
阅读次数:
254
一、block声明 1、无参数,无返回值: void (^sayHi)(); 2、有参数,有返回值: NSInteger (^operateOfValue)(NSInteger num); block的声明:返回值类型(^block变量名)(参数列表) 脱字符(^)是块的语法标记 二、block实现 ...
分类:
其他好文 时间:
2016-08-22 18:19:40
阅读次数:
134
在A页面,点击跳转到B页面,B页面操作完,回到A页面,并刷新A页面的内容。典型的例子,就是在一个列表里,点击新增,跳到新增页面,新增完,把数据传回给列表页,并刷新列表页里的内容。 这个,我平时一般是通过代理来实现,下面试着通过Block来实现。 在B页面定义Block,供A页面调用。 B页面,操作完 ...
分类:
移动开发 时间:
2016-07-28 15:05:04
阅读次数:
190
例子1:A控制器-》跳转—》B控制器 , 假设想从B控制器回传数组给A控制器 实现:B控制器.h文件定义一个block参数,.m文件执行block,A控制器设置block内容 例子2:A控制器完成任务,通知B控制器执行下一步任务 ...
分类:
其他好文 时间:
2016-06-25 19:11:50
阅读次数:
164
前言 要探索Block前先说一下我对Block的理解,我把它理解为:能够捕获它所在函数内部的变量的函数指针、匿名函数或者闭包。注意红色部份说的是它的精髓所在。希望看我这篇文章的人能够跟我说的步骤去做,做起来也比较简单,这样会有更好的效果,当然如果只看文章就能够让读者明白,那是我更加希望的。 一、首先 ...
分类:
其他好文 时间:
2016-06-02 21:54:07
阅读次数:
207
一.block在OC中的用法可以分为大概一下几种. 1>用于成员属性,保存一段代码,可以替代代理传值. 比如说,创建一个ViewController控制器,点击屏幕就跳转到ModalViewController控制器里的时候,不用代理用block实现一些功能: 2>用于参数传递 3>用于返回值 4> ...
分类:
其他好文 时间:
2016-05-29 16:34:00
阅读次数:
189
#pragma mark - get请求- (IBAction)getRequest:(id)sender { // 方式一: 使用Block实现 // // 1.创建URL// NSURL *url = [NSURL URLWithString:GET_URL];// // // 2.创建Sess ...
分类:
Web程序 时间:
2016-05-24 00:28:31
阅读次数:
200
Block转换为Block的结构体类型的自动变量,_block变量转换为_block变量的结构体类型的自动变量,所谓结构体类型的自动变量,即栈上生成的该结构体的实例。我们已经了解了block时oc对象,该block的类为_NSConcereteStackBlock,虽然该类并没有出现以变换源代码中, ...
分类:
其他好文 时间:
2016-03-24 06:29:33
阅读次数:
192
Block的实质: 使用clang将该block转换。 转换后形成的block文件是: struct __main_block_impl_0 { struct __block_impl impl; struct __main_block_desc_0* Desc; __main_block_impl ...
分类:
其他好文 时间:
2016-03-24 01:18:50
阅读次数:
363