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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© niujiayue 中级黑马   /  2015-11-6 22:53  /  980 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

oc中的初始化实例对象,如[car new]它等同于[[car alloc]init],但是如果我写[car alloc]也可以,这是为什么,也被初始化为0了,这又是为什么?麻烦各位了

2 个回复

倒序浏览
这个问题如意大师的视频中讲过这个
回复 使用道具 举报
new是对alloc和init的封装,他会隐藏一些细节问题,开发中不会使用new的情况,都是用alloc + init的形式。其中alloc是分配内存,他只负责分配内存,不负责内存的初始化,如果这块内存没用用过,他就是0,如果用过可能是其他的值,我们做的时候为了保证申请的内存都是0的,所以必须要用init函数对内存进行初始化。init函数你也可以重写,不一定让内存为0,也可以初始化成其他的值,系统默认的init函数就是将内存清0.希望可以帮到你,以后有什么问题多多交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马