黑马程序员技术交流社区

标题: OC init [打印本页]

作者: 1722413885    时间: 2014-4-16 00:55
标题: OC init
本帖最后由 1722413885 于 2014-4-16 10:38 编辑

在创建OC对象是,用Person *p = [Person new]; 和Person *p = [[Person alloc] new];的区别,为什么后一个更好?

作者: stone24    时间: 2014-4-16 01:21
后面这个你是要说这样创建吧:Person *p = [[Person alloc]  init]; 这样可以重写init方法,来初始化对象;Person *p = [Person new]; 出来对象就已经初始化好,默认为0;
作者: 愿我能    时间: 2014-4-16 02:06
同上楼,后面这种方法对内存管理利用的比较好,
作者: 李烨    时间: 2014-4-16 08:20
Objective-C 面向对象最大的特色是的消息传递模型,OC创建对象需要两个消息:alloc,init。
alloc的作用是分派存储器空间,init则是对对象做初始化。用Person *p = [[Person alloc]  init]; 创建对象你就可以重写方法修改初始化值等一系列操作,这样写更严谨,更符合OC语言机制。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2