Block代替delegate,尽量使用block,对于有大量的delegate方法才考虑使用protocol实现. 1.Block语法总结及示例如下:         //1.普通代码块方式block     returnType (^blockName)(parameterTypes) = ^returnType(parameters) {         // block code     };     使用未例:     int (^abc)(int a) = ^int(int a){…
delegate: 当我们第一次编写iOS应用时,我们注意到不断的在使用“delegate”,并且贯穿于整个SDK.delegation模式不是iOS特有的模式,而是依赖与你过去拥有的编程背景.针对它的优势以及为什么经常使用到,这种模式可能不是很明显的.delegate的基本特征是,一个controller定义了一个协议(即一系列的方法定义).该协议描述了一个delegate对象为了能够响应一个controller的事件而必须做的事情.协议就是delegate说,“如果你想作为我的delegat…
简介 项目主页: https://github.com/zwaldowski/BlocksKit BlocksKit 是一个开源的框架,对 Cocoa 进行了扩展,将许多需要通过 delegate 调用的方法转换成了 block.在很多情况下,blocks 比 delegate 要方便简单,因为 block 是紧凑的,可以使代码简洁,提高代码可读性,另外 block 还可以进行异步处理.使用 block 要注意避免循环引用. 目录结构 BlocksKit 的所有方法都以bk_开头,这样可以方便地…
Block存储区域 首先,须要引入三个名词: ● _NSConcretStackBlock ● _NSConcretGlobalBlock ● _NSConcretMallocBlock 正如它们名字显示得一样,表明了block的三种存储方式:栈.全局.堆.block对象中的isa的值就是上面当中一个,以下開始说明哪种block存储在栈.堆.全局.block为何是个对象,參考点击打开链接 ------------[要点1]:全局block------------ ● 定义在函数外面的block是…
一.oc代码 提示:看本文章之前,最好按顺序来看: //代码 void test1() { ; void(^block1)(void) = ^{ NSLog(@"block1----"); }; void(^block2)(void) = ^{ NSLog(@"block2----%d", age); }; NSLog(@"block1-----\n%@ %@ %@ %@", [block1 class], [[block1 class] sup…
环境变量.block.修饰符:block对环境变量的引用和修改需要通过修饰符来限定. http://www.cnblogs.com/fengmin/p/5816580.html - (NSUInteger)getSize { __block NSUInteger size = 0; dispatch_sync(self.ioQueue, ^{ NSDirectoryEnumerator *fileEnumerator = [_fileManager enumeratorAtPath:self.d…
需求:在ViewController中,点击Button,push到下一个页面NextViewController,在NextViewController的输入框TextField中输入一串字符,返回的时候,在ViewController的Label上面显示文字内容, (1)第一种方法:首先看看通过“协议/代理”是怎么实现两个页面之间传值的吧, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //NextViewController…
效果:viewController里面放置一个按钮和Lab,点击按钮进入oneViewController(delegate回调)或者BlockViewController(block回调),两者控制器里面分别有一个输入框,输入文字后 点击完成,把文本框输入的内容回调到  VIewController里面的 Lab上显示出来! 第一种:delegate回调 1.首先在oneViewController.h里面声明代理 #import <UIKit/UIKit.h> //协议 @protocol…
我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机没有电了 3.我只好让手机开始充电 4.充电的过程中我好无聊,我要去看电视,但是我不会一直看电视,我要等手机电充满了停止看电视,继续去玩手机 5.我开始看电视 6.手机电充好了,我听到手机响了一下,我不看电视了我继续去玩手机. 这个场景中哪里跟回调类似 呢?哪里跟通知类似呢?其实我们可以认为手机充好电了通过回调的方…
我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机没有电了 3.我只好让手机开始充电 4.充电的过程中我好无聊,我要去看电视,但是我不会一直看电视,我要等手机电充满了停止看电视,继续去玩手机 5.我开始看电视 6.手机电充好了,我听到手机响了一下,我不看电视了我继续去玩手机. 这个场景中哪里跟回调类似呢?哪里跟通知类似呢?其实我们可以认为手机充好电了通过回调的方式…