美文网首页OC开发基础
OC Block与 Swift 闭包的区别

OC Block与 Swift 闭包的区别

作者: bugLife丶 | 来源:发表于2019-07-25 15:11 被阅读0次

             移动开发主流:安卓和苹果开发,而苹果开发主要运用的开发语言是Object-c,从14年起,苹果新推出一门开发语言(Swift)。Swift语言相对于OC最大的区别,就是Swift语言完全是开源的。而且比OC语言语法更加简洁。

            那我们就从入门Block与闭包,讲讲OC于Swift的区别。都知道Block在OC里面开发用得特别多,而Swift主要用闭包,那两者到底有什么区别,其实你可以这么理解,闭包相当于OC里面Block,这么说是不是就恍然大悟了呀。  

            一。 Block写法:

            typedefvoid(^BlockValue)(NSString*str);

           @property(nonatomic,copy)BlockValue blockValue;

         //在合适的地方使用block

        self.blockValue= ^(NSString*str) {

            NSLog(@"%@",str);

        };

        //OC block传值

        if (self.blockValue) {

            self.blockValue(@"OC block传值");

        }

        二。 闭包写法:

       typealiasBackValueBlock = (String)->()//声明一个闭包

       var  backValueBlock:BackValueBlock?;//把闭包声明成一个属性

       self.backValueBlock = {

                (Str) ->Void in

                print(Str)

            }

       @objcfuncbuttonClick(btn:UIButton){

              print("点击了button");

            if backValueBlock != nil {

                backValueBlock!("swift send a value!!!!");

            }

        }

    相关文章

      网友评论

        本文标题:OC Block与 Swift 闭包的区别

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