block

作者: 林希品 | 来源:发表于2021-12-02 15:48 被阅读0次

//block的原型:

    NSString *(^myBlock)(int); 
    //上面的代码声明了一个block(^)原型,名字叫做myBlock,包含一个int型的参数,返回值为NSString类型的指针。 
    //block的定义: 
    myBlock=^(int paramA){ 
        return [NSString stringWithFormat:@"Passed number:%d",paramA]; 
    };      
    myBlock(2);
  //基本使用   返回值 UIImage object 
    UIImage *oldImage=[UIImage imageNamed:@"avatar"]; 
    UIImage *(^myImageBlock)(UIImage*)=^(UIImage *image){ 
        return image; 
    }; 
    UIImage *newImage=myImageBlock(oldImage); 

//基本使用 无返回值

NSString *string=@""; 
void (^logBlock)(NSString *)=^(NSString *paramStr){ 
    NSLog(@"logBlock log:%@",paramStr); 
}; 
logBlock(string);

//含有block参数的函数 比较常见的类型,如网络请求中的successfulBlock
//方法

    - (void)turnNumberWithNumberA:(NSInteger)a NumberB:(NSInteger)b andMyBlock:(void(^)(int aa,int bb))myBlock{ 
        int c=[[NSNumber numberWithInteger:a]intValue]; 
        int d=[[NSNumber numberWithInteger:b]intValue]; 
        myBlock(c,d); 
    }

//调用

    [self turnNumberWithNumberA:1 NumberB:2 andMyBlock:^(int aa, int bb) { 
        NSLog(@"aa is %d",aa); 
        NSLog(@"bb is %d",bb); 
    }];

//block在两个视图的传值 Apush到B B消失时将textfield的值传回A
//B.h

typedef void (^ReturnTextBlock)(NSString *showText);//给block重命名,方便调用 
@interface B : UIViewController 
@property (nonatomic, copy) ReturnTextBlock returnTextBlock;//声明一个block属性 
- (void)returnText:(ReturnTextBlock)block;//加上后方便第A视图书写该block方法 
@end
    //B.m 
    - (void)returnText:(ReturnTextBlock)block {//block的实现方法 
        self.returnTextBlock = block; 
    } 
    - (void)viewWillDisappear:(BOOL)animated {           
        if (self.returnTextBlock != nil) { 
            self.returnTextBlock(self.inputTF.text);//视图将要消失时候调用 
        } 
    }

//A.m需要push的时候调用

B *bVC = [[B alloc]init]; 
[bVC returnText:^(NSString *showText) {//定义B视图后调用block 
    self.showLabel.text = showText; 
}];
image.png

相关文章

  • iOS开发之Block原理探究

    Block概述 Block本质 Block调用 Block分类 Block循环引用 Block原理探究 Block...

  • block的使用

    定义block 返回类型 (^block名称)(参数) = ^(){block内容}; 调用block block...

  • Block 02 - __block

    Block 02 - __block __block 的作用 __block 可以解决 Block 内部无法修改 ...

  • iOS面试之Block大全

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • iOS面试之Block模块

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • iOS Block

    Block的分类 Block有三种类型:全局Block,堆区Block,栈区Block 全局Block 当Bloc...

  • iOS block 为什么官方文档建议用 copy 修饰

    一、block 的三种类型block 三种类型:全局 block,堆 block、栈 block。全局 block...

  • iOS开发block是用copy修饰还是strong

    Block分为全局Block、堆Block和栈Block1、在定义block没有引用外部变量的时候,block为全...

  • block 初探

    全局block, 栈block, 堆block

  • Block

    一、Block本质 二、 BlocK截获变量 三、__block 修饰变量 四、Block内存管理 五、Block...

网友评论

      本文标题:block

      本文链接:https://www.haomeiwen.com/subject/ihybtrtx.html