IOS中 new 和 alloc]init 等
文章目录
[className new]
和[[className alloc]init]
- 在实际开发中可能很少用到
new
,一般创建对象咱们看到的都是[[className alloc]init]
,但是并不是意味着就不会接触到new
,在一些代码中还是会看到使用new
,还有面试的时候,也有可能会被问到. - 那么,它们之间到底有什么不同呢?
|
|
通过源代码中我们可以发现[className new]
基本等同于[[className alloc] init]
;区别只在于 alloc 分配内存的时候使用了 zone 。这个 zone 是什么东东呢?它是给对象分配内存的时候。把关联的对象分配到一个相邻的内存区域内,以便于使用时消耗很少的代价,提升程序处理速度;
3. 为什么不推荐使用 new 呢?
如果,使用 new 初始化方法被固定为 init,而你又想使用 initWithXXX 怎么办?没办法!
未完待续。。。
文章作者 Rango
上次更新 2016-05-20