1. 延展: Extension
一句话解释: 是1个特殊的分类.所以,延展与分类一样是类的一部分.
特殊的地方:
1). 延展是1个匿名的分类,没有名字.
2). 延展只有声明没有实现.和本类共享1个实现.
2. 延展的声明.
@interface 本类名 ()
@end
延展没有单独的实现.和本类共享1个实现
将方法声明写在延展中 将方法的实现写在本类的实现中.
3. 如何添加1个延展.
延展只有1个.h文件. 没有.m文件. 因为延展没有单独的实现.和本类共享1个实现.
4. 延展的使用注意.
1).分类中只能新增方法.可以写@property但是只会生成getter setter的声明.
2).延展中可以写属性.
也可以写@property. 会自动的生成私有属性,getter setter的声明. getteer setter的实现.
方法声明肯定也是可以的.
5. 延展的作用: 肯定不是来把1个类分为多个模块的.因为实现和本类共享1个实现.
也肯定不是来扩展1个类的.因为实现和本类共享1个实现.你新增1个方法 方法的实现还要写在本类的实现中.
1). 思考:
要为1个类写1个私有的@property.
什么时候私有的@property?
生成的getter setter方法要是私有的.
2). 延展.
100%的情况下,延展不会独占1个头文件.
延展都是写在类的.m文件中.
写在延展中的成员,都是这个类的私有成员,只能在这个类的内部访问.无法在外部访问.
3). 延展天生就是来:私有化类的成员的.
如果类中有成员需要被私有化.
属性需要被私有化:
a. 在本类的@interface中@private
b. 在本类的@implementation中.
c. 写在延展中.
必须将其写在延展中.
方法需要被私有化:
只写实现不写声明.
建议: 私有方法仍然要写声明和实现,只不过声明写在延展中.
@property需要被私有化.
把@property写在延展中.
4) .如何使用.
如果类中有私有成员, 将这些私有成员全部的写在延展中.
私有属性,
私有方法的声明.
私有@property.
'
写在延展中的成员,只能在类的内部访问.不能在外部访问.
求打赏 |
|