一.
字典: 存储数据 键值对 通过字符串类型的key取值(容易取错,而且不容易发现)
模型:存储数据
模型的好处
1,所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业
2.模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,也就保证了数据的正确性.
3,使用模型访问属性时,编译器会提供一系列的提示,提高编码效率.
控制器ViewController不能对模型直接赋值. 所以要把字典转模型的过程,放在 模型里执行.
二.
id 的缺点:
NSString * str = [JDApp appWithDict]; //返回的是id,
NSLog("%d",str.lenght); //那么此处编译器就不会给出警告.
运行之后就会报 unrecognized(未被认出的) selector sent to instance(实例) , 也就是无法找到对应方法
instancetype的作用:
1,instancetype 在类型表示上,跟id一样,可表示任何对象类型
2,instancetype 只能用在返回值类型上,不能像id一样用在参数类型上.
3,instancetype 比 id多一个好处: 编译器会检测instancetype的真实类型