黑马程序员---iOS基础---协议
来源:互联网 发布:阿里云ace下线原因 编辑:程序博客网 时间:2024/05/22 17:42
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.Protocol概念
在OC里面,Interface是一个类的头文件的声明,并不是真正意义上的接口的意思,在OC中,接口是由一个叫做协议的protocol来实现的。
这个里面可以声明一些方法,和java不同的是,它可以声明一些必须实现的方法和选择实现的方法。这个和java是完全不同的。
定义协议----> 在类中采用指定的协议---->实现协议中的方法(注意方法有必须实现和选择实现两种)
协议的定义
@protocol协议名称<NSObject> //默认遵守NSObject协议
//方法声明列表
@end;
注意:协议默认的要采纳NSObject的协议
类遵守协议
创建类的时候遵守某个或者某几个协议
@interface 类名 : 父类 <协议名称>
@end
@interface 类名 : 父类 <协议名称1,协议名称2>
@end
某个协议也遵守某个或者某些协议,一个协议可以遵守其他多个协议
(1)协议遵守协议
@protocol协议名称<其他协议名称>
@end
(2)多个协议之间用逗号 , 隔开。
@protocol 协议名称 <其他协议名称1, 其他协议名称2>
@end
也可以用图形界面创建协议。
OC中的协议(protocol)使用注意:
1)Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现。
2)只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明。
3)只要父类遵守了某个协议,那么子类也遵守。
4)Protocol声明的方法可以让任何类去实现,protocol就是协议。
5)OC不能继承多个类(单继承)但是能够遵守多个协议。继承(:),遵守协议(<>)
6)基协议:<NSObject>是基协议,是最根本最基本的协议,其中声明了很多最基本的方法。
7)协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一份协议中的方法声明
NSObject是一个基类,最根本最基本的类,任何其他类最终都要继承它,它还有名字也叫NSObject的协议,它是一个基协议,最根本最基本的协议。
建议每个新的协议都要遵守NSObject协议。
protocol代理设计模式引入
代理模式是在oc中经常遇到的一种设计模式,那什么叫做代理模式呢?
在家里请保姆看孩子,家人和保姆之间商定了一个协议,
协议中写明了保姆需要做什么事情, 而保姆就是这个代理人,
即:家人和保姆之间有个协议,保姆遵守该协议,于是保姆就需要实现该协议中的条款成为代理人。
代理模式概念
传入的对象,代替当前类完成了某个功能,称为代理模式。
利用协议实现代理模式的主要思路为:
1)定义一个协议,里面声明代理类需要实现的方法列表, 比如这里一个代理类需要实现feedBaby与HongSleep方法
2)创建一个代理类(比如BaoMu),遵守上面的代理协议
3)在需要代理的类中(Baby),定义一个对象类型为id且遵守代理协议的成员变量
4)在Baby类中调用成员变量_delegate(代理)的方法,调用代理类的方法
5)main.m或其他使用Baby类的文件中,为Baby类的成员变量(代理类)赋值,
- 黑马程序员---iOS基础---协议
- 黑马程序员——IOS基础——Protocol协议
- 黑马程序员-IOS-OC基础-Block和协议
- 黑马程序员--ios基础
- 黑马程序员---ios基础
- 黑马程序员 java基础---TCP协议练习
- 黑马程序员_OC基础10_Protocol协议
- 黑马程序员-OC语言基础:协议
- 黑马程序员——OC基础---协议
- 黑马程序员IOS-OC语言-分类、协议
- 黑马程序员——ios基础---Objective-C:ARC、类别、Block、协议
- 黑马程序员——ios开发基础之OC中的分类、协议、延展和代理
- 黑马程序员-iOS基础-Foundation框架基础
- 黑马程序员-IOS-C语言基础
- 黑马程序员-IOS-OC基础-内存管理
- 黑马程序员-IOS-OC基础-ARC
- 黑马程序员———ios基础
- 黑马程序员-IOS-OC基础-内存管理
- HTML5_插入标记
- 看opengl 写代码(12) 光
- Contiki例(二)执行被阻塞的任务第二种方法
- java基础第八讲——URL、XML的解析
- logistic回归与牛顿方法的python实现 (standford公开课程小作业)
- 黑马程序员---iOS基础---协议
- UITextField总结
- Java删除ArrayList中的重复元素的2种方法
- poj 1222 高斯消元详解
- URL
- Swap Nodes in Pairs
- 数据源架构模式之行入口模式
- webkit编译
- php模拟post请求发送文件