类别和协议

类别

-类别是一种为现有的类添加新方法的方式,可以为任何类添加新的方法,包括那些没有源代码的类。
-类别的声明格式:
 向库中的类(NSString),为其添加类别:NumberConvenience
-与类的声明不同,类别的声明中没有实例变量部分。

@interface NSString (NumberConvenience)
-(NSNumber*)lengthAsNumber;
@end

实现类别
-与@interface部分相对应的还有一个@implementation部分。可以在@implementation部分实现类别中声明的方法。
-与@interface部分相似,@implementation部分也包含类名,类别名及新方法的正文部分

@implementation NSString(NumberConvenience)
-(NSNumber*)lengthAsNumber{
  long length = [self length];
  return  [NSNumber numberWithLong:length];
}
@end

协议
-Objective-C 中的协议类似Java中的接口,是一个方法的列表
-协议中不能声明变量
-采用协议意味着需要实现协议的所有方法
-声明协议使用@protocol指令:

 @protocol  Action
-(void) execute;
@end

-采用协议:在类的声明中列出协议的名称。并用尖括号将协议括起来

@interface  MyAction:NSObject<Action>{
  //成员变量
}
@end

在协议的方法前可以添加@optional  和  @required指令
-@optional :表示该方法是可选实现的
-@required:表示该方法必须实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值