你的位置:首页 > 操作系统

[操作系统]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;}