常用block格式备忘

Block的模式

1.无参数无返回值的Block

void (^emptyBlock)() = ^(){
        NSLog(@"无参数,无返回值的Block");
    };
    emptyBlock();


2.有参数无返回值的Block

void (^sumBlock)(int ,int ) = ^(int a,int b){
        NSLog(@"%d + %d = %d",a,b,a+b);
    };
    /**
     *  调用这个sumBlock的Block,得到的结果是20
     */
    sumBlock(10,10);


3.有参数有返回值的Block

 NSString* (^logBlock)(NSString *,NSString *) = ^(NSString * str1,NSString *str2){
        return [NSString stringWithFormat:@"%@%@",str1,str2];
    };
    //调用logBlock,输出的是 我是Block
    NSLog(@"%@", logBlock(@"我是",@"Block"));


Block结合typedef使用
#import <UIKit/UIKit.h>
@interface ViewController2 : UIViewController
/**
 *  定义了一个changeColor的Block。这个changeColor必须带一个参数,这个参数的类型必须为id类型的
 *  无返回值
 *  @param id
 */
typedef void(^changeColor)(id);
/**
 *  用上面定义的changeColor声明一个Block,声明的这个Block必须遵守声明的要求。
 */
@property (nonatomic, copy) changeColor backgroundColor;
@end

vc.backgroundColor = ^(UIColor *color){
        self.view.backgroundColor = color;
    };
****************************************************************************************************************************

做属性
@property (nonatomic, copy) void(^colorBlock)(UIColor *color);
 

posted on 2016-11-28 16:49  冰棍超人  阅读(553)  评论(0)    收藏  举报

导航