blockレビュー

1969 ワード

1.戻り値あり、パラメータあり
//======   typedef
typedef NSString *(^logBlock)(NSString *str1,NSString *str2);//    ,   

@property (nonatomic ,copy)logBlock blockkk;

self.blockkk = ^NSString *(NSString *str1, NSString *str2) {
        return @"123";
    };
    self.blockkk(@"123", @"1234");
   typedef
 NSString *(^logBlock)(NSString *,NSString *) = ^(NSString *str1,NSString*str2){
        return [NSString stringWithFormat:@"%@,%@",str1,str2];
    };
    NSLog(@"%@",logBlock(@"  ",@"block"));

2.戻り値なしパラメータあり
  typedef
typedef void (^block1)(NSString *str,id data);
@property (nonatomic ,copy)block1 block1;

self.block1 = ^(NSString *str, id data) {
        NSLog(@"---%@,%@",str,data);
    };
    self.block1(@"123", @123);
//======   typedef
 void (^sumBlock)(int a ,int b) = ^(int a ,int b){
        NSLog(@"demo2");
    };
    sumBlock(10,10);

3.戻り値なし、パラメータなし
  typedef
typedef void (^block3)(void);

@property (nonatomic ,copy)block3 block3;

self.block3 = ^{
        NSLog(@"      ");
    };
    self.block3();
   typedef
void (^block)(void) = ^(){
        NSLog(@"   ,    ");
    };
    block();

4.関数末尾block
  typedef
//1.    typedef    block
typedef void (^callBack)(NSString *str);
//2       block   
- (void)demo3:(callBack)block{
    block(@"123");
}
//.         
[self demo3:^(NSString *str) {
        NSLog(@"      block");
    }];
//====    block        block  

//1.
typedef void (^callBack)(NSString *str);
//2
@property (nonatomic ,copy)callBack block4;
//3
self.block4 = ^(NSString *str) {
        NSLog(@"---%@",str);
    };
    [self demo3:self.block4];
//4
- (void)demo3:(callBack)block{
    block(@"123");
}