类的声名、类别、类扩展、代理协议


首先应该明确的是类的声名、类别、类扩展及代理协议的表现形式:

1.

类的声名是最常见的,也就是对象头文件的:

@interface WebView : UIView

@end

2.

类别:有.h跟.m文件

在.h中的形式

@interface UILabel (AdjustWidth)

-(CGSize)AdjustWidth;

@end

3.

类扩展是一种特殊的类别,它一般定义在某对象的.m中,是对该对象的属性扩展。

一般用于给该对象添加一些私有的属性,

它是一种特殊的类别,省去了类别名、类别的.h和.m文件,而直接与需要扩展的对象共用一个.m文件。

@interface 某对象名 ()

@end

@implementation 某对象名——这里只是给读者指明类扩展的位置。

4.

代理协议:

@protocol  SFJTabBarDelegate<NSObject>

 @optional

//  生成代理方法的声明,谁代理谁实现

- (void)tabBar:(SFJTabBar *)tabBar didClickBtn:(NSInteger)buttonIndex;

 @end


5.类别、类扩展、代理协议的区别

类扩展是特殊的类别,是类别的一种,所有它具有类别的一切属性,但又有其特殊性;

分类一般只用来给对象添加方法,也可添加属性,添加的属性只有setter和getter方法的声名,而没有实现;

类扩展一般只用来给对象添加私有的属性,添加的属性有setter和getter方法的声名和实现。


代理协议由于它的委托功能,所以@protocol协议使用property也只会生成settergetter方法的声明;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值