因为alloc和init有可能返回不同的对象
层和UIView的区别是什么?
图层不会直接渲染到屏幕上, UIView更像是一个CALayer的管理器, 一个UIView上可以有n个CALayer, 每个layer显示一种东西,增强UIView的展现能力
pch文件的作用
.pch来自外部框架的头文件列表, 减少在选择Build或Build and Go时编译项目的时间
awakeFromNib与viewDidLoad区别
awakeFromNib当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以自定义自己的awakeFromNib函数来响应这个消息. 也就是说通过nib文件创建view对象执行awakeFromNib
viweDidLoad当view对象被加载到内存就会执行viewDidLoad, 所以不管通过nib文件还是代码方式创建对象都会执行viewDidLoad
LayoutSubviews何时被调用
1.初始化init方法不会触发
2.滚动ScrollView时会触发
3.旋转UIScreen时会触发
4.frame前后值发生变化
5.改变UIView的大小
id声明的对象有什么特性
id声明的对象具有运行时特性, 即可以指向任意类型的Objective-c对象
nil与NULL的区别
nil表示对象的对象的引用为空
NULL表示指向基础类型变量即C语言变量指针为空, 非ARC可以互相, ARC环境不能交换
BOOL与bool区别
bool是C语言C99标准中增加的变量类型
BOOL是Obj-C独有的布尔类型, 有YES和NO两个值,分别1和0, 非0都是真值,0为假值