OBJECT-C 类别

类别是一种为现有的类添加新方法的方式。你可以为任何类添加新的方法,包括那些你没有源代码的类。

类别的声明格式与类的声明格式相似:

@interface NSString(NumberConvenience)

-(NSNumber *)IengthAsNumber;

@end

该声明具有两个特点。首先,现有的类位于@interface关键字之后,其后是位于圆括号中的一个新名称。该声明表示,类别喝的名称是NumberConvenience,而且该类别将向NSString类中添加IengthAsNumber方法。但不能添加新实现变量,因此与类的声明不同的是,类别的声明中没有实例变量部分。

与@interface部分对应的还有一个@implementation部分,你可以在@implementation部分实现自己的方法。

@implementation NSString(NumberConvenience)

-(NSNumber *)lengthAsNumber

{

unsigned int length = [self length];

return ([NSNumber numberWithUnsignedInt:lenght]);

}

@end

类别的局限性:

第一:无法向类中添加新的实例变量。类别没有位置容纳实例变量

第二:名称冲突,即类别中的方法与现有的方法重名。当发生名称冲突时,类别具有更高的优先级。你的类别方法将完全取代初始方法,从而无法再使用初始方法。

类别的作用:

将类的实现分散到多个不同文件或多个不同框架中,

创建对私有方法的前向引用,

向对象添加非正式协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧阳映雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值