本文主要是介绍OC构造函数详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、创建对象的两种方法
(1)当用“类名 *p=[类名 new]”这种形式创建对象。例如
Person*p=[Personnew]; 其中的new关键字其实是父类NSObject的一个创建对象的方法,返回值为id类型;可以完整的创建一个可用的对象:1、先分配存储空间 +alloc 2、再初始化 -init
new方法就相当于先用类名调用NSObject类的类方法+alloc分配存储空间,相当于创建了一个类的对象 再调用根类的初始化方法-init进行初始化。
(2)方法1相当于用“类名 *p=[[类名alloc]init]”就是说:
Person*p=[Personnew]; 就相当于Person *p=[[Person alloc] init];
注意:alloc和init都返回id类型。
2、构造方法概念:用来初始化对象的方法,是个对象方法,以-开头。例如init方法就是一个构造方法。
3、重写父类构造方法或为类添加新的初始化构造方法的几个必不可少的条件:
(1)一定要调用父类super的初始化方法。一般直接继承NSObject的类都要调用super的init方法,[superinit]返回的是当前的OC对象,调用super的init方法的目的就是初始化从父类继承而来的一些成员变量和其他属性。例如对象内部的isa指针是从父类NSObject继承而来的,对象创建后调用了从NSObject继承来的对象方法init方法之后就把创建自己的类赋给自己内部的isa指针,等于说初始化了从父类NSObject继承而来的isa指针。继承自其他类的更容易理解,直接把子类初始化方法中的形参一一赋给的父
这篇关于OC构造函数详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!