alloc和init做了什么?

时间:2012-09-16 08:03:16

标签: iphone objective-c ios

  

可能重复:
  alloc and init what do they actually do

我们像[[className alloc] init]那样编写代码,那么在alloc中实际发生了什么以及init中发生了什么,我的理解是alloc将创建该类的实例并为该实例分配内存块,然后是什么使用init?

提前感谢。

3 个答案:

答案 0 :(得分:4)

alloc :它为您创建的对象分配内存,增加了保留计数

init :它会初始化您创建的对象,如果您提供自定义值和属性,则使用默认值和属性

答案 1 :(得分:4)

  

那么init的用途是什么?

简单:它执行alloc不执行的操作(因为它无法执行)。它初始化自定义实例变量,将属性设置为默认值等等......

答案 2 :(得分:3)

alloc方法执行分配并将保留计数增加1,并且必须在某处释放+ alloc返回的任何内容。

init负责在分配后初始化对象。使用消息对象的保留计数并生成一个保留计数+1的对象(不是1,而是“加1”);必须释放从init返回的结果才能正确管理。

顺便说一句,+ alloc是一个类方法,-init是一个实例方法