协议的类型限制

  • 声明1个指针,这个指针指向的对象要求遵守指定的协议.

    • 什么类型的对象都可以,唯一的要求就是这个对象要遵守指定的协议.
NSObject<协议名称> *obj;
  • 这个obj指针只能指向遵守了指定协议的任何对象. 如果没有遵守这个协议 那么编译器会报1个大大的警告.

    • 之所以,要求对象要遵守某个协议,是因为我们后面要调用这个对象中的协议方法.

  • 其实也可以使用id指针.id指针的好处不会做编译检查.
    • 和NSObject类一样 也是1个万能指针 可以指向任何对象.
id<协议名称> id1;
  • 这个时候,id1指针只能指向遵守了指定协议的对象 如果没有遵守这个协议 那么编译器会报1个大大的警告.

  • 如果要求1个指针指向的对象通同时遵守多个协议.

 NSObject<协议名1,协议名2> *obj;

     id<协议名1,协议名2> id1;
  • 如果希望指针指向遵守了指定协议的指定类的子类对象.

    • 父类<协议名> *指针;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值