黑马程序员-block和protocol

block数据类型

功能:block用来保存一段代码也叫代码块

特点:  block的标志^

        block跟函数很像

        可以保存代码

        有返回值

        有形参

如何定义block变量

 int (^sumBlock)(int,int);

 void (^myBlock)();


如何利用block封装代码

 ^(int a,int b){

    return a + b;

 };

 

 ^(){

    NSLog(@"------");

 };

 

 ^{

    NSLog(@"-------");

 };

block访问外面变量

  block内部可以访问外部的变量

  默认情况下,block内部不能修改外面的局部变量

  给局部变量加上__block关键字,这个局部变量就可以在block内部修改


protocol协议

protocol基本用途

 可以用来声明一大堆方法(不能声明成员变量)

 只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明

 只要父类遵守了某个协议,就相当于子类也遵守了

 

 协议的定义

  @protocol协议名称 <NSObject>

  方法声明

  @end

 

 如何遵守协议

 类遵守协议

 @interface类名:父类<协议名称>

 

 @end


以后需要遵守的原则

 以后想写协议和类的时候,都写@class@protocol

 实现的时候才写 #import。。。


什么时候把协议写在里面,什么时候写在外面

 当协议只用于这个类的时候写在里面

 当协议用于多个类的时候,写在外面





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值