标签:style blog http io ar 使用 sp div on
本文章参照李明杰老师的视频.
使用block 首先要会声明和实例化block
block 的声明:
block 分为 有返回值有参数,没返回值有参数,有返回值没参数,没返回值没参数 几种情况
有返回值 有参数的 int (^argReturnBlock)(int,int);
其他几种分别是 int (^ReturnBlock)();
void (argBlock)(int,int);
void (nonBlock)();
然后实例化
举一个例子:
int (int argReturnBlock)(int,int);
argReturnBlock = ^(int v1,int v2){
return v1 + v2;
};
最后是调用
int result = ArgReturnBlock (13,34);
/////////////////////////////////////////////////////////
block 的回调的使用例子;
监听按钮是否被点击了
MyButton * btn = [[MyButton alloc] init]; btn.buttonBlock = ^(MyButton *testbtn){ NSLog(@"%@___被店家了",testbtn); }; [btn click];
在调用click 方法的时候,会回调到上面的block 方法中去.
#import <Foundation/Foundation.h> @class MyButton; typedef void(^listenBlock)(MyButton *sender); @interface MyButton : NSObject @property (nonatomic,assign) listenBlock buttonBlock; - (void)click; @end
在
#import "MyButton.h" @implementation MyButton - (void)click { _buttonBlock(self); } @end
程序运行顺序是当调用click 方法的时候,
会跳转到MyButton.m 中的click 方法中,在这个方法中有_buttonBlock(self);
就会跳转到_buttonBlock 声明的地方,就是外面实例化该block 的地方.
block 的用途:
再有block 是怎么存储的,
标签:style blog http io ar 使用 sp div on
原文地址:http://www.cnblogs.com/yinyakun/p/4047206.html