通过xib加载控制器的View
- initWithNibName:如果指定了特定的名称的xib,会去加载指定的xib
- 如果指定是nil
- 判断有没有当前控制器相同名称的xib,如果有自动加载跟它相同名称的xib(例如:控制器的名称为BAIViewController那么会首先自动寻找BAIViewController.xib)
- 如果没有跟它相同的名称的XIB。自动加载跟它相同名称并且是去掉Controller(BAIView.xib)
模型setValuesForKeysWithDictionary (setValue:forKeyPath:)实现原理
- 先查看有没有对应key值得set方法,如果有set方法,就会调用set方法,给对应的属性赋值。
- 如果没有set方法,就会去查看有没有跟key值相同并且带有下划线的成员属性,如果有的话,就给带有下划线的成员属性赋值。
- 如果没有跟key值相同并且带有下划线的成员属性,还会去找有没有跟key值相同名称的成员属性,如果有就给它赋值。
- 如果没有直接报错。