第三部分
创建对象
为类分配相应的空间,默认值为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对象
网友评论