首页 > 学院 > 开发设计 > 正文

iOSblock示例

2019-11-14 19:09:55
字体:
来源:转载
供稿:网友
////  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;}

 

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表