iOS开发_new与alloc init 的区别

iOS创建对象的两种方式
  • UIView *myView = [[UIView alloc] init];

  • UIView *myView = [UIView new];

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

有问题欢迎指正以及相互探讨 —— CoderSun

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容