黑马程序员技术交流社区

标题: 关于init的知识点 [打印本页]

作者: whymerain    时间: 2015-3-18 10:30
标题: 关于init的知识点
        对于Person这个类,[[person alloc] init]是分配内存及初始化,[[person new] init] 怎么理解?

作者: darewolf    时间: 2015-3-18 11:17
new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。  差别在于,采用new的方式只能采用默认的init方法完成初始化,  采用alloc的方式可以用其他定制的初始化方法。
作者: xsun    时间: 2015-3-18 11:31
+alloc分配存储空间,返回未经初始化的对象
  1. Person *p1=[person  alloc];
复制代码

-init进行初始化,返回对象本身
  1. Person *p2=[p1 init];
复制代码

以上两个过程整合为一句:
  1. Person *p=[[Person alloc] init];
复制代码

注意,alloc是类方法,而init是对象方法
作者: whymerain    时间: 2015-3-18 12:23
darewolf 发表于 2015-3-18 11:17
new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。  差别在于,采用new的方式只能采用默认的in ...

[[Person new] init] 不是[[Person alloc] init]  怎么理解
作者: darewolf    时间: 2015-3-18 21:38
whymerain 发表于 2015-3-18 12:23
[ init] 不是[ init]  怎么理解

麻烦你在花一点时间看看后面的两句话。差别在于后面的。
我对我的粗心表示抱歉:new/init和alloc/init
作者: whymerain    时间: 2015-3-18 21:40
darewolf 发表于 2015-3-18 21:38
麻烦你在花一点时间看看后面的两句话。差别在于后面的。
我对我的粗心表示抱歉:new/init和alloc/init ...

已经会了,谢谢了




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