OC基础学习——Block语法的学习和Category与Extension的初步认识

    

一、Block语法介绍

        // 1.定义一个Block变量

        

        // 1.1定义一个返回值为void,没有形参

        

        void (^myBlock) (void); // 定义变量

        

        // 给这个变量赋值

        myBlock = ^(void)

        {

            NSLog(@"这是我自己定义的Block的语法");

        };

        

        // 使用

        

        myBlock ();

        

        

        // 1.2 定义一个有返回值的而且带有形参的block

        

        int (^myBlock1) (int,int); // 首先定义

        

        myBlock1 = ^(int a,int b)

        {

            return a+b;

        }; // 后面一定要加分号,因为这是语句

        

        

        NSLog(@"%d",myBlock1(2,3)); // 调用myBlock1语法

        

        

        // 1.3 tydef来定义 其形式为 typedef <#returnType#>(^<#name#>)(<#arguments#>);

        

        newBlock result ; //.定义

        

        result = ^(int a,int b)

        

        {

            return  a+b;

        }; // 封装

        

        NSLog(@"%d",result(5,6)); // 调用

        

        

        // Block 数据类型的特点

        

        int a = 10;

        

        __block int b = 5;

        

        void (^tryBlock)() = ^{

        

            NSLog(@"a=%d",a); //.1block内部能访问外面的的局部变量

            

            b = 6; // 如果要修改外面的局部变量,外部的变量要用__block修饰

            

            NSLog(@"b=%d",b);

            

            

        };

        

        tryBlock() ;


二、Category与Extension


1.Category主要是用来为类增加方法而使用的,能访问类的成员变量,但不能增加很修改成员变量,当Catagory的方法与类的方法重名时,Catagory的优先级别高于类。


2.Extension主要是增加类的成员变量和方法,并且让其转为私有。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值