美文网首页
iOS block的简单使用

iOS block的简单使用

作者: Me小酥酥 | 来源:发表于2016-07-21 17:05 被阅读40次
2016-07-21 16_31_43.gif

本人用block比较少,可以说是几乎没怎么用过,但是最近发现block也挺好用的,所以决定重温一下关于block 的知识,也在实际开发中用到了,今天总结一下block的简单使用。


A界面跳转到B界面,把B界面的输入值传给A界面显示出来。

B界面

第一种方式

B界面.h文件

#import <UIKit/UIKit.h>
typedef void (^MyBlock)(NSString *title);
@interface BViewController : UIViewController
@property (copy, nonatomic) MyBlock myblock;
@end

B界面.m文件

- (void)quedingBtn:(id)sender 
{
    self.myblock(self.testTextField.text);
    [self.navigationController popViewControllerAnimated:YES];
}

第二种方式

B界面.h文件

#import <UIKit/UIKit.h>
@interface BViewController : UIViewController
@property (copy, nonatomic) void (^MyBlock)(NSString *title);
@end

B界面.m文件

- (void)quedingBtn:(id)sender
{
    self.MyBlock(self.testTextField.text);
    [self.navigationController popViewControllerAnimated:YES];
}

A界面

第一种方式

- (IBAction)tiaozhuanBtn:(id)sender {
    __weak ViewController *weakSelf = self;
    BViewController *view = [[BViewController alloc] init];
    view.myblock = ^(NSString *title){
        weakSelf.titleLab.text = title;
    };
    [self.navigationController pushViewController:view animated:YES];

}

第二种方式

- (IBAction)tiaozhuanBtn:(id)sender {
     __weak ViewController *weakSelf = self;
    BViewController *view = [[BViewController alloc] init];
    view.MyBlock = ^(NSString *title){
        weakSelf.titleLab.text = title;
    };
    [self.navigationController pushViewController:view animated:YES];
}

这里需要注意block循环引用的问题,__weak修饰符定义一个变量来替换self,这样就可以解决block 中用self导致的循环引用,避免内存泄漏。

 __weak ViewController *weakSelf = self;

block也可以在声明方法的时候用到,举个例子:

.h中声明

- (void)textblock:(void (^)(NSString *title))my block;

.m中实现

- (void)textblock:(void (^)(NSString *))myblock
{
    myblock(self.testTextField.text);
}

.m中调用

- (void)quedingBtn:(id)sender {
    [self textblock:^(NSString *title) {
        NSLog(@"%@",title);
    }];
}

相关文章

  • ios block使用

    iOS Block的使用一 .最简单的block使用******使用block的三个步骤:1.定义block变量 ...

  • block 实用小例子

    本篇是简单介绍iOS 开发中block的使用(附demo): /* 声明一个block (返回类型)(^block...

  • iOS Block存储域及循环引用

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block __block说明符...

  • iOS Block实现原理

    系列文章:iOS Block概念、语法及基本使用iOS Block __block说明符iOS Block存储域及...

  • iOS block简单使用

    一般用法 结果外传 声明 外传 实现 可适当使用block,将事件结果外传。 其它用法 参数外传 声明 外传 实现...

  • iOS block的简单使用

    本人用block比较少,可以说是几乎没怎么用过,但是最近发现block也挺好用的,所以决定重温一下关于block ...

  • iOS Block __block说明符

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block存储域及循环引用 上一...

  • Block-介绍

    Block简单介绍首先Block是iOS中比较特殊的一种数据类型Block是苹果官方比较推荐使用的数据类型,应用也...

  • block编程, __block, __weak, __stro

    参考:block编程iOS __weak和__strong在Block中的使用__block & __weak &...

  • Block 初见

    Block 初见 介绍 iOS block 的相关知识 目录 Block 背景知识 Block 使用方式 Bloc...

网友评论

      本文标题:iOS block的简单使用

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