iOS block示例
// // block.h // Block // // Created by tqh on 15/4/12. // Copyright (c) 2015年 tqh. All rights reserved. // #import <Foundation/Foundation.h> typedef void(^block1) (id obj); typedef void(^block2)(); typedef NSInteger(^block3)(); @interface block : NSObject //带参数 + (void)initBlock1:(void(^)(id obj))block sum:(NSInteger)sum; //typdef + (void)initBlock11:(block1)block sum:(NSInteger)sum; //不带参 + (void)initBlick2:(void(^)())block sum:(NSInteger)sum; //typedef + (void)initBlock22:(block2)block sum:(NSInteger)sum; + (void)blockTest:(block2)block; + (void)initBlock3:(block3)block sum:(NSInteger)sum; @end
// // block.m // Block // // Created by tqh on 15/4/12. // Copyright (c) 2015年 tqh. All rights reserved. // #import "block.h" @implementation block + (void)initBlock1:(void (^)(id))block sum:(NSInteger)sum{ NSString *str = @"返回字符串"; if (sum > 10) { block(str); } } + (void)initBlock11:(block1)block sum:(NSInteger)sum{ NSString *str = @"返回字符串"; if (sum > 10) { block(str); } } + (void)initBlick2:(void (^)())block sum:(NSInteger)sum{ if (sum > 10) { block(); } } + (void)initBlock22:(block2)block sum:(NSInteger)sum{ if (sum > 10) { block(); } } +(void)blockTest:(block2)block { block(); } +(void)initBlock3:(block3)block sum:(NSInteger)sum{ NSInteger index = block(); NSLog(@"%ld",index); } @end
// // main.m // Block // // Created by tqh on 15/4/12. // Copyright (c) 2015年 tqh. All rights reserved. // /** * block回调 * * @param argc * @param argv * * @return */ #import <Foundation/Foundation.h> #import "block.h" int main(int argc, const char * argv[]) { @autoreleasepool { [block initBlock1:^(id obj) { NSLog(@"%@",obj); } sum:9]; [block initBlock11:^(id obj) { NSLog(@"%@",obj); } sum:11]; [block initBlick2:^{ NSLog(@"block2"); } sum:9]; [block initBlick2:^{ NSLog(@"block22"); } sum:11]; [block blockTest:^{ NSLog(@"100"); }]; [block initBlock3:^NSInteger{ return 10000000; } sum:10]; } return 0; }