OC 3对象初始化

1、分配对象

分配(allocation)是一个新对象诞生的过程。

向某个类发送alloc消息的结果,就是为该类分配一块足够大的内存,以存放该类的全部实例变量。同时,alloc方法还顺便将这块内存区域全部初始化为0。BOOL类型变量被初始化为NO,int类型变量被初始化为0,float类型变量初始化为0.0,所有的指针被初始化为nil。

一个刚刚分配的对象并不能立即使用,需要先初始化该对象,然后才能使用它。有些语言(如C++和Java),使用构造函数在单次操作中执行对象的分配和初始化。OC将这两种操作拆分为两个明确的步骤:分配和初始化。

2、初始化对象

initialization从操作系统取得一块内存,准备用于存储对象。init方法(即执行初始化操作的方法)几乎总是返回它们正在初始化的对象。可嵌套进行alloc和init调用。

Car *car=[[car alloc] init];

2.1、编写初始化方法

- (id) init

{

  if(self==[super init]){

    engine=[Engine new];

    tires[0]=[Tire new];

    tires[1]=[Tire new];

    tires[2]=[Tire new];

    tires[3]=[Tire new];

  }

  return (self);

}

如果在初始化一个对象时出现问题,则init方法可能返回nil。表明未能初始化该对象。

init方法返回已经被初始化的对象。

2.2、初始化时做什么

init方法完成的工作,在该方法中,要执行全新的初始化工作,给实例变量赋值并创建你的对象完成任务所需要的其它对象。

3、便利初始化函数

有些对象拥有多个以init开头的方法。重要的是要知道,这些init方法实际上没什么特别的,他们都只是遵循命名约定的普通方法。

许多类包含便利初始化函数,它们是用来完成某些额外工作的初始化方法。

- (id) init;

4、更多部件改进

6、指定初始化函数

原文地址:https://www.cnblogs.com/cjj-ggboy/p/13040810.html