首页 > 代码库 > IOS开发- 用block实现回调
IOS开发- 用block实现回调
在IOS开发中经常会用到回调的情况,下面介绍如何用block实现回调。
1 #import <Foundation/Foundation.h>2 3 @interface BLock : NSObject4 5 + (void)getBlock:(void (^)(NSString *))someblock;6 7 @end
1 #import "BLock.h" 2 #import <Foundation/Foundation.h> 3 4 @implementation BLock 5 6 + (void)getBlock:(void (^)(NSString *))someblock 7 { 8 NSLog(@"we are in a getBLock function"); 9 someblock(@"BLOCK GO GO");10 }11 @end
上面有一个BLock类, 里面有个静态方法,通过someblock回调一个string 数据。
1 #import <Foundation/Foundation.h> 2 #import "BLock.h" 3 int main(int argc, const char * argv[]) 4 { 5 6 @autoreleasepool { 7 8 [BLock getBlock:^(NSString *str){NSLog(@"%@",str);}]; 9 }10 return 0;11 }
通过回调回来的str参数 ,在main里面显示。
输出结果如下
2014-06-26 18:01:31.065 MyFirstApp[2430:303] we are in a getBLock function2014-06-26 18:01:31.066 MyFirstApp[2430:303] BLOCK GO GOProgram ended with exit code: 0
也可以将BLock.h和BLock.m的文件改写成如下:
1 #import <Foundation/Foundation.h>2 3 typedef void (^ablock)(NSString *);//将block定义为新的类型4 5 @interface BLock : NSObject6 7 + (void)getBlock:(ablock)someblock;8 9 @end
1 #import "BLock.h" 2 #import <Foundation/Foundation.h> 3 4 5 @implementation BLock 6 7 + (void)getBlock:(ablock)someblock 8 { 9 NSLog(@"we are in a getBLock function");10 someblock(@"BLOCK GO GO");11 }12 @end
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。