iOS关于Block的使用

前言:block使用较之delegate相对简单,代码并没有这么复杂。而block主要用于两个页面之间的传值,因为有时候使用属性传值并不能解决所有问题。

block使用:

1.在需要传值的类(这里就叫A吧)的.h文件中声明:

@property (copy,nonatomic) void (^testBlock)(NSString *testStr);

2.在A的.m文件中引用,比如说点击某个button,在button 的点击事件中:

- (void)testClicked:(UIButton*)sender{

     self.testBlock(testStr);//testStr为你需要传到B的值

}

3.在需要值的类(这里简称为B)中调用block

__weak typeof(self) weakSelf = self;

    BVC.testBlock = ^(NSString *test){

        weakSelf.getTestStr  =  test;//getTestStr为B类需要赋值的字符串类型,test就是从A中传过来的值。

    };

此处weakSelf是为了防止循环引用,如果不需要给B的某个属性赋值,则不会造成循环引用,无需“__weak typeof(self)”。

posted on 2017-04-21 20:10  jane_IOS  阅读(108)  评论(0编辑  收藏  举报

导航