3. 项目准备
class,superclass,self,super的区别
1.class,superclass,self,super的区别:class:获取方法的类对象,superclass:获取方法的父类对象,self:当前对象去获取当前调用方法:super:本质是当前对象方法调用父类方法
*2.NSLog(@"%@ %@ %@ %@",[self class], [self superclass], [super class], [super superclass]);结果:subpersion,person,subpersion,person
恶心BUG
1.多添加了相同文件或没关联时出的BUG:到Build phases—>complaint Source中删除或添加文件
4. Const
const与宏的区别
1.区别4点:1.编译时刻:宏是预编译的,const是编译时刻的,2.编译检查:宏不会报编译错误,const会,3.宏可以定义函数与方法,const不行4.大量使用宏,编译时刻会过长
const的简单使用
1.const写在指针前与变量名旁边的区别:const p:p的值不能变,const int *p或int const *p:*p不能变,
const的使用场景
1.替换宏,把一些常见的变量,变成只读
2.方法参数,传入一个地址,不允许在内部改外部的值
static和extern使用
1.static作用修饰:局部变量,用于延长生命周期,只会分配一次,全局变量,只能在当前文件夹下使用
2.extern作用:声明全局变量,不能定义全局变量
extern和const联合使用
1.exter和const联合使用的作用:提供外接一个不可以改变的成员属性
2.exter和const规范:全局变量不能定义在自己的文件下,防止大家取一样的名字报错,搞一个专门的文件管理
5. 父子控制器
项目步骤
1.搭建界面2.界面业务逻辑处理,跳转页面3.每个界面喝多业务逻辑,用一个控制器去管理,自定义控制器
什么是父子控制器
1.把A控制器的view添加到B的控制器的view,那么A控制器要成为B控制器的子控制器
父子控制器的好处
1.不用每次都创建控制器,控制器不会被销毁,不会每次添加view
2.(只有导航控制器的子控制器才能拿到self.navigationController,拿到了self.navigationController,才能push)
3.self.navigationController,判断自己是不是导航控制器的子控制器,如果不是自己的父控制器,继续判断,直到没有父控制器
4.用dismiss时会判断当前控制器是不是modal,是就dismiss,不是就会判断父类是不是modal,是就dismiss
5.小小项目:创建3个子控制设置标题—>根据创建标题的数量添加到btn按钮上—>点击时根据控制器的btn按钮上的标记拿到每个控制器的view设置尺寸大小
UIScrollerView的自动布局
1.设置view的约束来控制UIScrollerView的滚动区域
Size和center
1.先设置尺寸,在设置center,前提size从frame中获取,在bounds中获取就不用考虑到顺序.