第七天学习笔记
1.protacol基本概念
- protacol:就像一个借口的概念,叫做协议,
- protacol的作用是用来申明一些方法的,也就是说,是一系列的方法的申明组成的
- protacol的语法格式:
@protacol 协议名称 方法声明列表 @end
- 和category一样在模板中创建
- 在类的后面加上一个协议的名称,这个类就拥有了这个协议的所有方法的申明
- 相同类型的类可以用继承,但是不同类型的只能用协议
2.protacol的注意点
- 协议中不能定义属性
- OC中只能继承一个类,但是可以有多个协议
- OC中的协议又可以遵守其他协议,只要在协议的名称后面加上一个<>,在<>里面写上我们的一个要遵守的协议的名称就可以了,那么如果一个类遵守了这个协议,就遵守了协议中的协议,这个是不是很有意思啊
- NSObejec也是协议啊,那么从今天起,NSObejec是一个类,也是一个协议
3.@required和@optional关键字
- 在一个协议中有这两个关键字的话,就可以控制方法是否需要实现
- required表示:这个方法必须要实现
- optional表示:这个方法可以不实现
- @required和@optional关键字:写在方法的前面
- 这两个关键字用于程序员之间的交流的
4.协议的应用场景–类型限定
- 可以将我们的协议写在数据类型的右边<>,如果想给该变量赋值,那么该对象必须遵守某个协议,那么如果对象不遵守这个协议,就会有警告
- 类型的限定一定是写在数据类型的右边的
- 虽然在接受某个对象的时候,对这个对象进行了类型的限定(限定它必须实现某个协议),但是并不意味着这个对象就是真正的实现了该方法,所以每次在调用对象的协议方法的时候应该进行一次验证
- 如果验证成功的话,我们就可以调用我们对象的这个方法(实例代码没有写,可以在协议的视频中查看),那么在调用这个对象的协议的时候,一定要记得写上这个协议的判断,也就是这个安全协议的方法是不是实现了,这个可以证明你有没有一个开发的经验啊
- 实例代码
if([self.wife respondsToSelector:@selector(cooking)]) { [self.wife cooking] }
//那么这样就表示了,如果协议的方法实现了的话,我们就可以调用,如果没有实现的话,我们就不能够调用
5.代理设计模式
- 这个贯穿我们的整个iOS开发
- 如果使用id类型来接受数据,那么以后换了数据类型,不要修改代码
- 协议的编写规范,当前协议属于谁,我们就将协议定义到谁的头文件中
- 协议的名称一般以他的属于的那个类的类名开头,后面跟上property或者delegate
- 没有搞懂为什么要传一个参数啊
6.Foundation框架介绍
- 框架就是众多应用程序的几个
- 如何创建字符串
![image](/Users/yinhuanyi/Desktop/屏幕快照\ 2016-03-05\ 下午10.57.07.png)
7.字符串的读写
- URL:互联无上统一的标准资源地址
- URL格式: