iOS创建对象的两种方式:
- 一、[[ObjectName alloc] init];
- 二、[ObjectName new];
第一种方式来创建对象时, 系统首先会给变量分配内存,然后调用init方法来进行初始化, 或者调用initWith方法来初始化;
第二种方式是第一种方式的两步的概括, 系统会直接开辟好内存, 调用init方法来初始化对象,但是只能调用init方法;
具体的区别:
- 1.alloc在分配内存的时候使用了zone, 它是在给对象分配内存的时候把关联的对象分配到一个相邻的区域内, 以便于调用时消耗很少的内存, 提升程序的处理速度;
- 2.使用new来创建对象的话, 初始化方法被固定死了, 只能使用init, 不能调用其他的initWith方法;
- 3.使用alloc init方法, 我们可以重写init方法, 但是如果使用new来创建的话就只能走系统的init方法了.