美文网首页
iOS入门小知识-协议

iOS入门小知识-协议

作者: BiBiMan | 来源:发表于2021-09-28 13:16 被阅读0次

id类型

在介绍协议之前,我们先来了解OC中一个特殊的类型,那就是id类型,它是一个万能指针,可以指向任何OC对象,相当于NSObject *,类似于C里面的void *,自带寻址运算,所以id在指向一个对象时不需要再添加寻址运算符“*”。

协议

生活中处处都有协议,买车有买车协议,买房有买房协议,租房有租房协议,像我们这些打工仔基本都会签一个协议“卖身协议”,严谨一点的还会签一个保密协议,除了我们这类能说会跳的生物有协议外,其实机器也是有协议的,比如爬虫协议、机器人协议、http协议等,OC也不例外,OC中的协议就好比一个专门用来存放方法的容器,更像一组方法的列表,在协议中只会对方法进行声明(不能声明成员变量),不能对方法进行实现。在OC中,没有多继承,但可以通过协议间接实现类似于多继承的效果。

OC中的协议由协议名和方法构成:

协议的构造 创建协议

既然是协议,那就要有事物去遵守协议,OC中只要某个类遵守了这个协议,就相当于拥有了协议中的所有的方法的声明,那么也就由这个遵守协议的对象来实现协议制定的方法,而且只要父类遵守了某个协议,就相当于子类也遵守了这个协议。协议的一般使用步骤为:制定协议—>遵守协议—>实现协议里的方法—>调⽤协议里的方法

协议的使用

协议中的关键字:

@required:表⽰必须实现的协议方法

@optional:表⽰可以实现也可以不实现的协议方法

协议的关键字

协议的特点:

1.可以使用id<协议名> 的方式定义指针,这种指针可以用在方法的参数上,类的属性上。用在属性上,这个属性可以指向任何遵守了此协议的对象。如果用在参数上,任何对象只要遵守了此协议就可传⼊

2.协议中的方法可以是可选的,也可以是必须的,见图“协议的关键字”

3.一个类可以同时遵守多个协议

4.一个类继承了一个父类,如果父类遵守了某些协议,子类也相当于遵守了这些协议,见图“协议的使用”

5.在一个类的实现部分也可以指定遵守的相关协议,这里需要用到类扩展(匿名分类)

协议选择器

我们可以使用协议选择器判断一个类是否遵守了某个协议,从而来正确地调用协议方法,否则就会报错

相关文章

  • iOS入门小知识-协议

    id类型 在介绍协议之前,我们先来了解OC中一个特殊的类型,那就是id类型,它是一个万能指针,可以指向任何OC对象...

  • 输入url到页面返回的过程

    了解这个问题之前 我们需要一些计算机网络基础知识: 互联网协议入门(一) 互联网协议入门(二) HTTP 协议入门...

  • iOS入门小知识-类

    OC全称Objective-C(面向对象的C),是以C语言为基础的,并结合Smalltalk特征扩展出来的一种面向...

  • iOS入门小知识-NSValue

    NSValue NSValue是NSNumber的超父类,可以存储任何类型的数据,包括复合数据类型(数组,指针,结...

  • iOS入门小知识-NSNumber

    NSNumber NSNumber继承自NSValue,是一个用来包装的类,可以将基础数据类型包装成一个对象

  • iOS入门小知识-SEL

    SEL选择器 SEL选择器是一个变量类型,这个类型写作SEL。SEL的变量装载的是”成员方法”,更准确的说,装载的...

  • iOS入门小知识-分类

    分类 OC中特有的一种语法,Category,通常我们叫它分类、类别和类目。分类可以在不改变原来类的基础上,给类扩...

  • iOS入门小知识-拷贝

    深拷贝和浅拷贝 浅拷贝:只拷贝对象的地址,所拷贝出来的对象指针所指向的地址仍然是被拷贝对象的内存地址 深拷贝:真正...

  • iOS入门小知识-数组

    C数组主要用于存储基本数据类型 (int, char, float, double...),以及复合数据类型(i...

  • iOS新手入门课外阅读

    ?知识库 iOS新手入门 iOS笔试题 iOS面试题 iOS开发知识整理合集 1年=小学 2年=初中 3年=高中 ...

网友评论

      本文标题:iOS入门小知识-协议

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