http://www.mamicode.com/info-detail-308725.html
alpha和opaque的区别
alpha是用来描述改view的透明度从0到1,0表示的是透明,1表示不透明。alpha支持动画(animation),alpha = 0 与 hidden = YES 效果一样都是看不到view,但是后者相比开销大。在alpha等于0时view接受touch事件,但是hidden则不接受。并且hidden和opaque 不支持动画。alpha并不影响镶嵌在其内部view行为,而hidden会影响。当把view设置为透明背景时,一般把opaque设置为NO,可以减少开销,优化内存.opaque影响图形绘制系统。设置为YES,会优化view的绘制。
3,nil,NSNULL,NULL区别
nil是指向obj-c中对象的空指针,是一个对象,在o-c中nil对象调用方法不会引起crash。
Nil是指向obj-c中的类的空指针,表示的是一个空类。
NULL是指向任何类型的空指针(如c/c++中的空指针),在objective-c中是一个数值。
NSNULL用于集合操作,在集合对象中,表示一个空值的集合对象。
4.KVC and KVO
KVC(key-value-coding)键值编码,是一种间接操作对象属性的一种机制,可以给属性设置值。通过setValue:forKey:和valueForKey,实现对属性的存取和访问。
KVO(key-value-observing)键值观察,是一种使用观察者模式来观察属性的变化以便通知注册的观察者。通过注册observing对象addObserver:forKeyPath:options:context:和观察者类必须重写方法 observeValueForKeyPath:ofObject:change:context:。常应用MVC模型中,数据库(dataModal)发生变化时,引起view改变。
21.应用程序的生命周期和状态(参照:http://blog.csdn.net/totogo2010/article/details/8048652)
Not running 未运行 程序没启动
Inactive 未激活 程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态
Active 激活 程序在前台运行而且接收到了事件。这也是前台的一个正常的模式
Backgroud 后台 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态
Suspended 挂起 程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。
下图是程序状态变化图: