1. 懒加载
意思就是:"用到的时候再加载,不用就不去加载"
1> 判断数据是不是空的,如果是空的话就创建、
2. property list (plist)
root 根目录 : 根目录返回的是什么类型,最终就是什么类型
3. 模型
就是一个继承自NSObject的一个类
类里面提供多个属性给外界访问
外界直接给属性赋值(数据)
其它地方需要用的时候,直接使用模型访问里面的属性。
4. 封装模型
5. instancetype 检测初始化方法返回的是什么类型,如果跟接受的类型不匹配会直接警告
苹果官方建议一般初始化方法是使用instancetype
只能修饰初始化方法
id 任意类型,不会警告
id 比如,你确实不知道这个方法需要返回的什么类型
可以修饰属性
id model
6. property的使用策略
copy 一般是使用在NSString上的
strong 使用在OC对象上, 一般使用在NSArray,NSDictionary...model
weak 使用在OC对象上, 一般都是使用在UI控件上的
assign 使用在基本数据类型上的
7. 类前缀
com.xj.string
com.wangcai.string
NEXT Step
NSString
USER INTERFACE
UIButton
Audio vedio
AVPlayer
XMG
XMGShopModel
NIShopMode
8. 封装(自定义控件)
如果需要自定义一个view的话,那么就是直接继承自UIView
如果需要自定义一个按钮的话,那么就是直接继承自UIButton
9. MVC m 模型数据 v 自定义控件 c 控制器
控制器 首先不管view中显示的是什么东西 添加到自己的view中就可以了
负责将模型文件赋值 自定义控件
view 只是管理当前内部的子控件
model 存放数据
10. plist的创建和加载
懒加载
模型的理解
封装
.layoutSubviews 当当前控件的frame发生改变的时候 就会调用
.instancetype
. 多种传值的方式
11. 思路
使用plist文件
创建一个root为NSArray的plist
使用NSBundle加载plist文件
返回的是root的类型
使用懒加载加载数据
创建一个模型类
将数组中的字典遍历出来,在控制器给模型对应的属性赋值
封装模型,直接在控制器中创建一个模型,使用构造方法传递一个字典给模型内部
在模型内部给自己的属性赋值
封装的view
创建一个继承自UIView的类
在init中创建你需要的子控件
但是这里没有frame,因为控件的frame是在初始化之后设置的
在layoutSubviews设置子控件的frame
在自定义view中提供一个模型属性
在控制器中创建自定义的view并且给他的模型属性赋值