Category和Extension的区别
来源:互联网 发布:大数据对旅游业的影响 编辑:程序博客网 时间:2024/04/30 12:39
#import
@interface NSObject (Category)
- (void)myMethod;
@end
这是一个最简单的Category,作用于NSObject类,给NSObject添加了一个方法。
使用Category需要注意的点:
(1) Category的方法不一定非要在@implementation中实现,也可以在其他位置实现,但是当调用Category的方法时,依据继承树没有找到该方法的实现,程序则会崩溃。
(2) Category理论上不能添加变量,其实在添加属性后系统已经给默认添加了属性的声明方法,但是没有添加实现,所以使用@dynamic
#import
static const void * externVariableKey
@implementation
@dynamic variable;
- (id) variable
{
}
- (void)setVariable:(id) variable
{
}
-----------------------------------------------------------------------------------------
Extension非常像是没有命名的类别。
@interface MyClass : NSObject
@property (retain, readonly) float value;
@end
//一般的时候,Extension都是放在.m文件中@implementation的上方。
@interface MyClass ()
@property (retain, readwrite) float value;
@end
使用Extension需要注意的点:
(1)
- Category和Extension的区别
- Category和Extension的区别
- Object-C Category和Extension的区别
- iOS中 category 和extension的区别
- iOS Category 和 Extension的区别
- Category(类别)和扩展(Extension)的区别
- Object-C Category和Extension的区别
- iOS中 category 和extension的区别
- objective-c 中 category 和 extension 的区别
- OC的category和extension
- Category和Extension的使用
- ios Category 和 extension 区别,Category中使用属性
- iOS Category Extension 区别
- Category和extension(扩展类的功能)
- 类的扩展-category和extension
- Category和Extension
- Category和Extension
- Category和Extension
- Android UiAutomator环境配置与编译运行
- 【SSH】java真分页实现
- 51nod 1057 N的阶乘
- Android中App启动优化
- Cocos发布Apk失败
- Category和Extension的区别
- Linux makefile 教程 非常详细,且易懂
- PS之通道和蒙版
- spark处理mongodb数据(python版)
- 2013cvpr的总结
- Java基础--知识积累
- mysql/*!50001注释解释在MySQL里,多行解释是/**/,这个是SQL的标准但是MyS
- 数据挖掘导论 笔记
- DB2 LOCATE 函数的使用