A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1722413885 中级黑马   /  2014-4-16 00:55  /  1456 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 1722413885 于 2014-4-16 10:38 编辑

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

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
后面这个你是要说这样创建吧:Person *p = [[Person alloc]  init]; 这样可以重写init方法,来初始化对象;Person *p = [Person new]; 出来对象就已经初始化好,默认为0;
回复 使用道具 举报
愿我能 来自手机 中级黑马 2014-4-16 02:06:54
藤椅
同上楼,后面这种方法对内存管理利用的比较好,
回复 使用道具 举报
Objective-C 面向对象最大的特色是的消息传递模型,OC创建对象需要两个消息:alloc,init。
alloc的作用是分派存储器空间,init则是对对象做初始化。用Person *p = [[Person alloc]  init]; 创建对象你就可以重写方法修改初始化值等一系列操作,这样写更严谨,更符合OC语言机制。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马