1.ios新特性
常见关键字:
1.当新出了关键字时,学会如何使用:修饰属性,方法参数,方法返回值
2.关键字的好处,注意点:提高程序员规范,知道如何赋值了,只能用于声明对象,不能声明基本类型
泛型
1.泛型的使用场景,格式:声明对象属性不确定,创建对象属性才确定时使用,放在类型的后面,表示限制类型.
2.好处:可以用点语法,提高程序员开发规范
3.协变,逆变:用于转换类型
__kindof
1.什么意思,有什么用途:相当于的意思表示某个类或他的子类,让外界调用可以看到创建的是什么对象而不报警告
2. Runtime(简称运行机制)(主要的是消息机制)
消息机制
1.runtime运行条件:必须要导入一个头文件#import \,进入工程 -> Build Settting -> msg -> No(不严格检测发送消息的调用)
2.本质,使用场景,使用方法:让对象发送消息,可以调用没有暴露出来的方法,objc_msgSend([上一个消息], @selector(发送消息))也可以传多个参数
*3.调用类方法的底层实现原理:isa指针—>拿到方法编号到方法列表—>找到方法名(函数入口)
交换方法
1.使用场合:比如一个项目多年,现在要给一个系统属性在不改变名字的情况下添加一个方法(添加一个图片提醒功能)
2.如何交换:添加一个自定义的图片方法添加所要加的属性在添加图片分类:同过load加载,拿到系统图片类方法a1在拿到自定义的图片方法a2在交换一下
动态添加方法
1.什么是动态添加:用到的时候才添加方法,不一开始就加载
*2.有没有使用过performSelector,什么时候用过:动态添加方法调用
3.如何动态添加:判断有没有实现,没有就添加,传递参数的添加,调用了一个不存在的方法就会调用
4.resolveIns调用时刻:调用了一个不存在的方法就会调用
@动态添加属性
1.什么是动态添加属性:给系统类添加额外的属性比如name属性,产生关联
字典转模型kvc(练一下)
1.有什么用处,怎么使用:提取给类方便调用属性,方便给plist文件声明,解析完后的字典调用封装了属性的类方法
字典转模型(1.2)底层实现原理
1.原理:遍历模型中所有成员变量 去 字典中取对应的value,给模型成员变量赋值