美文网首页
OC_alloc和New方法的区别,以及其它初始化方法的区别

OC_alloc和New方法的区别,以及其它初始化方法的区别

作者: Init_ZSJ | 来源:发表于2017-03-18 23:40 被阅读0次

序言:翻阅资料,学习,探究,总结,借鉴,谢谢探路者,我只是个搬运工。
参考、转发资料:
http://blog.csdn.net/wangjiwei2010/article/details/47057127

new是较为老式的写法,后来发现只有一个new不好使,才引入了alloc和init这种写法,保留new一是向后兼容,二是很多时候是一种更简单的写法。其实是一样的,new在内部调用的alloc和init.

  • alloc方法是给类分配内存空间(通过malloc方法)。
  • init方法初始化
  • new是结合了alloc,隐士的调用了init方法。

[className new]基本等同于[[className alloc] init],在功能上是一致的,当我们只是为了使用init方法初始化时,都一样,new是隐士的调用了init方法,所以固定死了一个初始化方法为init,而alloc方法可以我们随意的使用initXXX方法。

区别只在于alloc分配内存的时候使用了zone,这个zone是个什么东东呢?它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度。什么要把alloc 和init 分开?

  • 可以使用多种init方法
  • 显示调用总比隐式调用要好”

alloc, copy,new创建的对象是不加入到自动释放池当中的,需要我们手动释放,而array方法创建的对象是加入到自动释放池当中的,自动释放池什么时候释放,变量就什么时候释放。

相关文章

  • OC_alloc和New方法的区别,以及其它初始化方法的区别

    序言:翻阅资料,学习,探究,总结,借鉴,谢谢探路者,我只是个搬运工。参考、转发资料:http://blog.csd...

  • 【第28天】python全栈从入门到放弃

    1.init和new方法区别 init初始化方法 new构造方法(先构造出来,才能初始化) 2.实例化一个方法都发...

  • python------new方法及其他

    一、单例模式new与init的区别:__new:创建实例对象时调用的构造方法init:初始化方法,用于设置实例的相...

  • 单例

    一、单例模式new与init的区别:__new:创建实例对象时调用的构造方法init:初始化方法,用于设置实例的相...

  • this_原型链_继承

    this相关问题 apply、call 、bind的作用以及区别 call、apply和bind方法的用法以及区别...

  • 2019-04-30派森学习第162天

    11、简述面向对象中new和init区别 init是初始化方法,创建对象后,就立刻被默认调用了,可接收参数,如图 ...

  • Python的new与init

    Python的new与init 区别 new方法是在init方法前被调用的。new负责创建,init负责创建后的赋...

  • Python的new与init

    Python的new与init 区别 new方法是在init方法前被调用的。new负责创建,init负责创建后的赋...

  • 10道python面试题,每题10分,你能的多少分!

    1、一行代码实现1--100之和 2、简述面向对象中new和init区别 init是初始化方法,创建对象后,就立刻...

  • Object的clone()方法

    这是一个native方法,说一下他的使用方法以及和new的区别 研究的原因: 主要是对于这种底层实现的方式产生了一...

网友评论

      本文标题:OC_alloc和New方法的区别,以及其它初始化方法的区别

      本文链接:https://www.haomeiwen.com/subject/tpbjnttx.html