标签:oc
block自己不会执行,必须调用才会执行block大括号里的代码段
void (^block)() = ^(){
NSLog(@"无参数");
};
block();
结果
2015-07-28 20:06:56.839 OC10_Block[3182:202852] 无参数
有返回值在最后段要加上return
int (^block)() = ^(){
return 100;
};
// 没有参数也要加上括号
NSLog(@"%d",block());
结果:
2015-07-28 20:08:18.328 OC10_Block[3214:203801] 100
void (^)(int ,int )是block的类型,它的名是block,我们也通过名进行调用
void (^block1)(int ,int ) = ^(int a,int b){
NSLog(@"%d",a + b);
};
// 调用
block1(10,20);
结果:
2015-07-28 20:10:12.211 OC10_Block[3251:205047] 30
int (^block)(int,int) = ^(int a,int b){
return a + b;
};
NSLog(@"%d",block(10,20));
结果:
2015-07-28 20:11:17.154 OC10_Block[3274:205787] 30
// block和局部变量
// __block相当于一个在block中修改的权限,否则它只能取值,不能赋值
__block int a = 10;
void (^block)() = ^(){
a = 10 * a;
NSLog(@"%d",a);
};
block();
参数:日期的字符串,返回:NSDate类型的日期对象
NSDate *(^block)(NSString *) = ^(NSString *str){
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
return [formatter dateFromString:str];
};
NSLog(@"%@",block(@"2015-07-28 12:12:12"));
通过block对数组进行遍历
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6", nil];
// 系统的block
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@",obj);
}];
版权声明:本文为博主原创文章,转载请注明原文地址
标签:oc
原文地址:http://blog.csdn.net/u011752406/article/details/47110535