类别的作用?

有时我们需要在一个已经定义好的类中增加一些方法,而不想去重新写该类。比如当

工程已经很大,代码量比较多,或者类中已经抱住很多方法,已经有其他代码调用了该

类创建对象并使用该类的方法时,可以使用类别对该类的扩充新的方法。

注意:类别只能扩充方法,而不能扩充成员变量。

委托(举例)

委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象

就是这个对象的代理,代替它来打理要做的事。反映到程序中,首先要明确一个对象的委托方是哪个对象,委托所做

的内容是什么。

委托机制是一种设计模式,在很多语言中都用的,这只是个通用的思想,网上会有很多关关于这方面的介绍。

那么在苹果开发过程中,用到的委托的程序实现思想如下,我主要拿如何在视图之间传输信息做个例子。

譬如:在两个页面(UIView视图对象)实现传值,用委托(delegate)可以很好做到!

方法:

类A

@interface A: UIView

id transparendValue Delegage;

@property(nomatic,retain) id transparendValueDelegate;

@end


@implemtion A

@synthsize transparendValue Deleagate

-(void)Function

{

NSString* value=@"hello";

//让代理对象执行transparendValue动作

[transparendValueDegegate transparendValue:value];

}

@end

类B

@interface B:UIView

NSString* value;

@end


@implemtion B

-(void)transparendValue:(NSString*)fromValue

{

value=fromValue;

NSLog(@"the value is %@",value);

}

@end


//下面的设置A代理委托对象为B

//在定义A和B类对象处:

A*a=[[A alloc]init];

B*b=[[B alloc]init];

a.transparendValueDelegate=b;//设置对象a代理b

这样在视图A和B之间可以通过委托来传值!

下面这个例子委托有两类:

1.一个视图类对象的代理对象为父视图,子视图用代理实现让父视图显示别的子视图

2,同一个父视图下的一个子视图为另一个子视图的代理对象,让另一个子视图改变自身背景为给定颜色

规范格式如下:

@protocal TransparendValueDelegate;

@interface A:UIView

id<TransparendValueDelegate>m_dTransparendValueDelegate;

@property(nomatic,retain)id m_dTransparendValueDelegate;

@end


//代理协议的声明

@protocal transparendValueDelegate<NSObject>

{

-(void)transparendValue:(NSString*)fromValue;

}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值