object c中new和alloc init的区别
new是较为老式的写法,后来发现只有一个new不好使,才引入了alloc和init这种写法,
保留new一是向后兼容
二是很多时候是一种更简单的写法,alloc分配内存的时候使用了zone zone是给对象分配内存的时候 把关联的对象分配到一个相邻的内存区域内 以便于调用时消耗了很少的代价 提升了程序的处理速度
当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序
1、 alloc 创建对象,分配空间
2、init (initWithNibName) 初始化对象,初始化数据
3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
4、viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件
5、viewWillAppear 视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
6、viewDidAppear 视图已在屏幕上渲染完成
当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反
1、viewWillDisappear 视图将被从屏幕上移除之前执行
2、viewDidDisappear 视图已经被从屏幕上移除,用户看不到这个视图了
3、dealloc 视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放
new 和 alloc init 的区别 和视图控制器创建到显示到屏幕上的代码执行顺序
原文:http://www.cnblogs.com/sunxianglong/p/4556031.html