OC Block与 Swift 闭包的区别

         移动开发主流:安卓和苹果开发,而苹果开发主要运用的开发语言是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!!!!");

        }


    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容