Block的简单应用

作者: __夏至未至 | 来源:发表于2016-04-18 16:35 被阅读322次

    其实本人一也没学习iOS多久,所以希望有大神看到了可以多多指教,一开始学习iOS开发的时候,如果子view里要调用父viewcontroller里的方法,更多的是用delegate,然后去@protocol一个delegate。那时候看到很多block,都觉得很难理解,其实仔细深入想想看,也不是很难的去应用。

    (你的需要返回)(^block名字)(你需要传入的类型);
    这是对block的定义,比如说:

    <pre><code>typedef void(^MyBlock)(NSString *);</code></pre>
    这就是定义了一个没有返回类型,传入NSString类型的block,可以用于传值。

    我们可以创建两个Viewcontroller,第一个viewcontroller设置一个label,设置tap手势,push到第二个view controller里,第二个设置一个textfield用于输入。然后写一个tap手势pop回去,并且在tap手势里加上 self.block(_textField.text) ,这样就可以把block传回第一个view controller,当然要在第一个view controller里写上:
    __weak typeof(self)weak = self;

    ovc.block =^(NSString *sting){
        weak.label.text = sting;
    };
    

    当然,记得block一般都是copy修饰的,所以即使你在后面对block传入的参数改变的时候,block里面的还是不改变的,而且要弱引用下。

    <pre><code>- (void)seedMessage:(void(^)(NSString *name))success;</code></pre>
    这个方法,带有回调操作的一个方法,相对delegate来说可以省下很多代码,OC自带的很多方法也是block方法,可以试着写写看哦。

    谢谢观看,欢迎各位一起探讨,一起学习,一起进步~

    相关文章

      网友评论

        本文标题:Block的简单应用

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