标签:ios objectivec
使用块(block)传值比较简单,并且用块写出来的代码更为整洁。
代码模拟:
声明文件:
#import <Foundation/Foundation.h> typedef void (^GBCompletionHandler)(NSData* data, NSError *error); @interface GBUpload : NSObject /** * upload data to some where * * @param data which to be upload * @param completionHandle do some logic when upload finish. */ - (void) upload:(NSData*) data completionHandler:(GBCompletionHandler) completionHandle; @end
#import "GBUpload.h" @implementation GBUpload - (void) upload:(NSData*) data completionHandler:(GBCompletionHandler) completionHandle { NSLog(@"uploading......"); sleep(3); NSLog(@"upload success"); if (completionHandle) { completionHandle(data, nil); } } @end
GBUpload *upload = [[GBUpload alloc] init]; [upload upload:nil completionHandler:^(NSData *data, NSError *error) { if (error) { NSLog(@"upload failed"); } else { NSLog(@"upload finish, update UI"); } }];
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:ios objectivec
原文地址:http://blog.csdn.net/zhuimengfuyun/article/details/47027371