标签:style class blog code http tar
在IOS开发中经常会用到回调的情况,下面介绍如何用block实现回调。
1 #import <Foundation/Foundation.h> 2 3 @interface BLock : NSObject 4 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 function 2014-06-26 18:01:31.066 MyFirstApp[2430:303] BLOCK GO GO Program 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 : NSObject 6 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
IOS开发- 用block实现回调,布布扣,bubuko.com
标签:style class blog code http tar
原文地址:http://www.cnblogs.com/changkaizhao/p/3810596.html