创建对象

2018-03-03  本文已影响8人  MissSunRise

第三部分

创建对象

为类分配相应的空间,默认值为0。

id 变量名 = [类名 alloc];

类名 *变量名 = [类名 alloc];

例如:Atom *atom = [Atom alloc];

初始化对象

-(id)init

{

    //调用父类

    //如果没有调用次方法。init将返回nil

    if((self = [super init]))

    {

        _chemicalElement = @"None";

    }

    return self;

}

通过这个方法获取父类

如果需要初始化带参数 那么方法会延长

例:- (id)initWithNeutrons:(NSUInteger) neutrons

Atom *atom = [[Atom alloc] init];

//即分配了内存,又初始化了对象

发送消息

向对象发送信息:

[接收器 消息名和参数]

为属性设置:

对象名.属性名 = 值

调用类方法:

[类名 消息名称和参数]

消息转发

当程序出现不能发送信息给指定的目标时,程序就会报错。

而objective-c 有一种特殊的机制,消息转发机制。

其意是当对象收到与其方法不匹配的消息时,通过消息的转发机制可以使对象执行用户预先定义的处理过程。(可以将无法识别的小心发送给同一接收器,PS这里难道是传说中的垃圾消息接收装置???或者什么也不去做)

快速转发:利用forwardingTargetForSelector:方法,将该方法转发给其他对象。垃圾桶

标准转发:利用forwardInvocation:方法。什么都不去做

向Hydrogen类添加快速转发机制

创建一个辅助类

HydrogenHelper类为辅助类

HydrogenHelper.h 创建方法

HydrogenHelper.m   实现代码

当调用这个方法当时候

返回提示信息

设置好HydrogenHelper类以后,在Hydrogen中增加触发机制

在Hydrogen中想要得到HydrogenHelper的方法,需要初始化HydrogenHelper对象

上一篇下一篇

猜你喜欢

热点阅读