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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© keycola 中级黑马   /  2014-12-10 10:30  /  1487 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

new 为什么要分 alloc  开辟空间,然后init 初始化呢,然后init会是一个什么过程呢

8 个回复

倒序浏览
非要扒光原理,会不会很乱?
回复 使用道具 举报
你也可以一步就写出来,这是个人习惯,可能是因为这样写程序看起来更直观吧
回复 使用道具 举报
如果你需要初始化出来的对象中的属性带有属性值就要分开写并重写init方法咯,init是NSObject中的方法用来初始化类,个人将其理解为使对象具有消息传递的能力
回复 使用道具 举报
1.init初始化是个对象方法,可以重写init方法,就是构造方法,让对象初始化有自定义默认值;2.这样写还牵连到后续OC的内存管理,为了方便以后
回复 使用道具 举报
Cocoa框架的语法,我觉得还有个很重要的用途就是方便调用带参数的inti或是非默认的inti方法,如果你只写new,你怎么调用带参数的inti或是非默认的inti方法呢
回复 使用道具 举报
13hoop 中级黑马 2014-12-11 13:28:29
7#
alloc只是开辟空间单空间的值是随机的  init是被重载的方法在object中有定义  通过init方法给这个空间赋初值
回复 使用道具 举报
一门语言的语法而已。不用太纠结。
回复 使用道具 举报
嘿嘿,说白了,就是分两步,在分配空间后初始化的过程中你可以对初始化进行一些你自己设定的操纵,如果用new的话,就没有办法进行自己设定的初始化,只能用系统的,所以分两步就是为了增加灵活性!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马