带我飞程序员iOS 开发

Block项目中的实战

2015-09-02  本文已影响426人  飞鱼IOS

-、block 解决两个界面之间的传值,常应用在网络请求中,请求成功与否返回响应的数据。
现在基于BaicViewController来记录下block的申明创建调用。

BaicViewController类的.h文件中
1,定义一个block:
typedef void(^myBlok)(id obj);

2,紧接着定义一个属性。
@property (nonatomic,copy) myBlok dataBlock;

3,然后再定义一个实列方法:

BaicViewController类的.m文件中
1,实现实列方法
在实现方法中,一定要指定 self.dataBlock = comParam,将block指向comparam。

2,当要返回数据的时候就用:
self.dataBlock(A);
A 可以是类,数组,字典等。

定义已经完成,接下来是如何调用:
在其他类中申明一个BaicViewController的对象,然后直接调用该对象的block的实列方法即可,然后就会在该方法的block块中得到你想要的数据了。

二、如何创建一个能在一个方法里成功和失败不同处理结果的block,步骤和上面的大致相似。

BaicViewController类的.h文件中
1,定义两个block,一个对应成功时的,一个对应失败时的:
typedef void (^successBlock)(UIImage * imageObj);
typedef void (^failBlock)(NSString * failObj);

这里就不用定义属性了。

2,然后再定义一个实列方法:

BaicViewController类的.m文件中
1,实现实列方法,在实列方法中:
当判断成功时我们返回数据 success(A),A在这里是一个UIImage的对象
当判断失败时我们返回数据 fail(B),B在这里是一个NSString的对象

最后在调用中就可以在成功和失败里面取到各自的值了。

上一篇 下一篇

猜你喜欢

热点阅读