iOS开发iOS DeveloperIOS

block(一)

2015-12-19  本文已影响541人  土鳖不土

注:本文不涉及到底层实现和block原理。

先说下block长怎么样子吧“

 **Block变量格式: 返回值类型(不可省略, 最少void) + (^变量名称) + (参数) (不可省略, 至少()).  格式和函数指针很相似,只是把*改成了^.

好了接下来按照下面一点一点来讲解

block作为参数:

1. //定义一个block(没有返回值 用void来表示,block名字为JFCallBack,以^还表示他是一个block,传一个参数为字符串)

typedef void (^JFCallBack) (NSString *name);

2./*声明一个类方法 ,参数为block*/

+(void)JFProductBlock:(JFCallBack)callBack;

3./*实现该带参数的block 并通过block参数进行回调的类方法*/

+(void)JFProductBlock:(JFCallBack)callBack{
/通过参数回调 传一个字符串参数/
callBack(@"JF");
}

4./*调用该带参数的block 的类方法*/

[ JFBlockASParameter JFProductBlock:^(NSString *name) {
NSLog(@"%@", name);
}];

在控制台里面打出来:

�block作为参数

block作为属性:

1./*声明block属性*/

@property(nonatomic, copy)JFCallBack block;


2./*重写block属性的set方法*/

-(void)setBlock:(JFCallBack)block{
_block = block;
block(@"111");
}

3./*调用该block的属性*/

JFBlockASParameter *blockParmeter = [[JFBlockASParameter alloc]init];
blockParmeter.block = ^(NSString *str){
NSLog(@"%@", str);
};

控制台打出来:


block作为属性

block作为返回值:

1./**声明一个block方法返回值为block

+(JFCallBack )JFProductBlock;


2.实现返回值为block的方法

+(JFCallBack )JFProductBlock{
return ^(NSString *str){
NSLog(@"%@", str);
};
}

3./*调用返回值为block 的方法*/

JFCallBack block = [JFBlockASParameter JFProductBlock];
/block回调进行传参/
block(@"JF 作为返回值");
}

作为返回值

block(一)很基础适合新手入门。

接下来会有block(二),block(三)和大家见面。

希望大家指出我的block系列的不足指出,或者有什么建议我会在二,三中体现。我会非常感谢

希望大家继续关注我。

上一篇 下一篇

猜你喜欢

热点阅读