Objective-C 12 类别Category
来源:互联网 发布:google浏览器 for mac 编辑:程序博客网 时间:2024/05/01 05:23
Category
OC提供了一种与众不同的方式——可以动态的为已经存在的类添加新的行为(方法)。
这样可以保证类的原始设计规模较小,功能增加时再逐步扩展。
并且使用Category对类进行扩展时,不需要创建子类。
Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。
可以为任何类添加新的方法,包括那些没有源代码的类。
习惯将类别代码放在独立的文件中,通常以“类名称+类别名称”的风格命名。
现在我们为NSString类添加一个类别hello。步奏如下图:
1 File-New-New File,或者按Command+N快捷键,弹出下图。
2 选择Objective-C File,点击Next。弹出下图:
3 填写类别名称Hello,选择文件类型为Category,Class填写给哪个类添加类别。
这样后会创建两个文件:NSString+Hello.h和NSString+Hello.m。
NSString+Hello.h
#import <Foundation/Foundation.h>@interface NSString (Hello)-(void)haha;@endNSString+Hello.m
#import "NSString+Hello.h"@implementation NSString (Hello)-(void)haha{ NSLog(@"NSString haha");}@end
在使用的地方需要导入类别的头文件
#import <Foundation/Foundation.h>#import "NSString+Hello.h"typedef int (^MySum)(int, int);int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str = @"abcdef"; [str haha]; } return 0;}输出结果为:
2016-08-11 17:42:25.622 命令行工程[6126:275845] NSString haha
可以为任何类添加任意数量的类别,当然要保证类别名称唯一。
缺陷:
1 类别中无法添加新的实例变量,可以添加属性。
2 名称冲突:类别中的方法与现有方法重名,此时类别具有更高的优先级。
0 0
- Objective-C 12 类别Category
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- Objective-c Category(类别)
- Objective-C 类别(Category)浅谈
- Objective-C 类别(Category)浅谈
- Objective-C类别(Category),分类
- 【Objective-C基础】类别Category
- objective-c类别(Category)详细解说
- Objective-C Category类别 初体验
- objective-c category类别的使用
- Objective-C - 分类(类别)的应用 Category
- Objective-C中的类别(Category)
- 学习笔记(objective-c)-类别(category)
- Objective-C——类别(Category)详解
- Java泛型(一) 泛型的概念 基础
- Android仿美团团购详情页下拉图片放大效果,简单可直接用在项目中
- cf 540 C Ice Cave
- 关于delete和deletelater的问题
- Java并发编程:线程池的使用
- Objective-C 12 类别Category
- iOS集成极光推送,绕过一些坑
- Storm+Kafka集成
- UITaableView的section间隔设置
- 死锁-1.0.2
- IOS侧滑,手势向右划问题
- python3配置文件ini读取方法
- Grep 与正则表达式
- 中缀表达式转后缀表达式,并计算后缀表达式值