Category和Protocol笔记 by STP
来源:互联网 发布:域名购买哪个网站好 编辑:程序博客网 时间:2024/05/21 06:55
1.Category:无需创建子类就能为现有的类创建新方法的方式
格式:
#import MyClass.h@interface MyClass(MyCategory){ -(void)categoryMethod; }@end
#import MyClass+MyCategory.h@implementation MyClass(MyCategory){ -(void)categoryMethod{ NSLog(@"这是分类方法"); }}@end</span>
作用:
1.将类的扩展分散到不同的文件中,方便管理;
2.声明其他类未实现的私有方法,避免编译器产生警告;
3.向对象添加非正式协议。
使用场景:
1.团队开发,一个类中的很多方法需由不同的组员实现;
2.扩展基础类库中的类,例如:NSString等
局限性:
1.无法添加实例变量,只能添加方法;
2.当Category中的方法与原始类中的方法同名时,Category的方法优先级更高,原始类中的方法将被覆盖,无法使用
Category和Extension(类扩展)的区别:
1.从形式上看,Extension是匿名的Category;
2.Extension可添加变量;
3.Extension声明的方法需要在main implementation中实现,Category可不实现。
2.Protocol:一系列的方法列表,类似于Java的接口
作用:
1.利用protocol实现代理模式,解耦MVC中view和controller。
使用场景:
1.UIView产生的事件通过protocol通知controller。
protocol可以在单独的h文件中,也可写在相关类的h文件中
格式:@protocol XXXDelegate<NSObject>@required-(void)requiredMethod; //必须实现的方法,如果不写注解,默认为required@optional-(void)optionalMethod; //可选方法@end
//TestDelegate.h@interface TestDelegate:NSObject<XXXDelegate> //如需采用多个protocol,可用“,”隔开@end
//TestDelegate.m@implementation TestDelegate -(void)requiredMethod{ NSLog(@"protocol的required方法"); }@end
0 0
- Category和Protocol笔记 by STP
- CocoaPods安装和使用笔记 by STP
- Carthage安装和使用笔记 by STP
- CoreLocation笔记 by STP
- IOS笔记-protocol、category和继承
- Category和protocol区别
- ios笔记--class关键字,Category,protocol和block笔记
- object-c category 和 protocol
- Category和protocol的区别
- iOS的category和protocol
- iOS的category和protocol
- iOS------消息、Category和protocol
- KVC & KVO 学习笔记by STP
- C语言预处理指令笔记 by STP
- iOS内存管理笔记 by STP
- C语言数据类型笔记 by STP
- C语言指针笔记 by STP
- Objective-C 零散知识笔记 by STP
- SpringMVC_拦截器笔记
- 冒泡排序算法
- 使用opensmile提取音频的特征,得到特征向量,并扔进libsvm中进行分类训练测试
- R语言:关于rJava包的安装
- Plist文件的读写操作
- Category和Protocol笔记 by STP
- 解惑rJava R与Java的高速通道
- Unity手游之路<十三>手游代码更新策略探讨
- 杭电1698 just a hook (线段树)(区间更改值)
- java_42--45
- SDL播放Audio遇到的问题记录
- Android之Button自定义点击效果
- Android开发中的屏幕适配问题1
- Microsoftの戦略的クラウド「Azure(アジュール)」を見る【第一回】