// 可以这样定义block
// 定义了一个block,这个block返回值是int类型,接受两个int类型的参数
int (^Sum) (int,int) =^(int a,int b)
{
return a+b;
};
int a=Sum(10,11);
NSLog(@"%i",a);
void test2(){
//__block有2个下划线
__blockint c=15;
MySum sum=^(int a,int b){
//block可以访问外面定义变流量,局部变量,但是不能修改
//但是加了_block就可以了
c=19;
NSLog(@"c is%i",c);
return a+b;
};
NSLog(@"%i",sum(10,10));
}
typedefint(^MySum)(int a,int b);
oid test2(){
//__block有2个下划线
__blockint c=15;
MySum sum=^(int a,int b){
//block可以访问外面定义变流量,局部变量,但是不能修改
//但是加了_block就可以了
c=19;
NSLog(@"c is%i",c);
return a+b;
};
NSLog(@"%i",sum(10,10));
}
#import <Foundation/Foundation.h>
@class Button;
typedefvoid (^ButtonBlock) (Button *btn);
@interface Button :NSObject
@property(nonatomic,assign)ButtonBlock block;
-(void)click;
@end
#import "Button.h"
@implementation Button
-(void)click
{
_block(self);
}
@end
Button *btn=[[Buttonalloc]init];
btn.block=^(Button *btn){
NSLog(@"按钮%@被点击了",btn);
};
[btnclick];
block用在参数的回传。