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;
}

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。