9、Category-OC
2013-12-26 20:20
225 查看
Category 书上翻译为目录 [系统类的扩展]
(1)实现继承之外的扩展方法机制
(2)Category使用方法
(3)字符串翻转方法Category扩展
(4)让函数私有化
(1)实现继承之外的扩展方法机制
在一个类里面拓展一些方法进去
1、能把一个类的实现分为若干不同文件中。
<1> c/c++无法实现的,把类实现分到若干文件中实现。
<2> 或者现有的类中拓展一些方法进去。
以前是用继承方法在里面实现一些方法,现在只要在字符串类中拓展一些方法就好。[用系统类中动态的添加一些方法]
<3>
公司经常问Category 与 继承有什么区别呢?
Category 不能完全替代继承,但是它能够做很多继承做不了的事情,写起来比继承麻烦,但使用起来比较好用。
2、每个Category 是类的一部分
3、类的不同类别可以单独编译(可以让不同开发者负责一个Category )
4、如果把一个类Category (申明和实现)放到一个.m文件中,那么该Category 外界不能访问。这样实现类似c++中的 class的private功能。
5、Category 实际上就是对类的扩展。
Category 的缺点:
只能扩展函数,消息,不能扩展字符段,变量等[所以说不能替代继承]
Category 命名规范:
一般:
要扩展的类名+扩展变量.[h/m]
比如:
NSString + ReverseString.h
NSString + ReverseString.m
![](https://img-blog.csdn.net/20131222111319218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3lfY2Fp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20131222111339703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3lfY2Fp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
unichar == unsigned short 两个字节。
"%C" 这个C是大c,和语音中的c不一样。
appendString 添加到字符串里。
![](https://img-blog.csdn.net/20131222111736531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3lfY2Fp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
实现.m函数私有化[只给.m函数提供调用]
(2)Category使用方法
(3)字符串翻转方法Category扩展
(1)实现继承之外的扩展方法机制
(2)Category使用方法
(3)字符串翻转方法Category扩展
(4)让函数私有化
(1)实现继承之外的扩展方法机制
在一个类里面拓展一些方法进去
1、能把一个类的实现分为若干不同文件中。
<1> c/c++无法实现的,把类实现分到若干文件中实现。
<2> 或者现有的类中拓展一些方法进去。
以前是用继承方法在里面实现一些方法,现在只要在字符串类中拓展一些方法就好。[用系统类中动态的添加一些方法]
<3>
公司经常问Category 与 继承有什么区别呢?
Category 不能完全替代继承,但是它能够做很多继承做不了的事情,写起来比继承麻烦,但使用起来比较好用。
2、每个Category 是类的一部分
3、类的不同类别可以单独编译(可以让不同开发者负责一个Category )
4、如果把一个类Category (申明和实现)放到一个.m文件中,那么该Category 外界不能访问。这样实现类似c++中的 class的private功能。
5、Category 实际上就是对类的扩展。
Category 的缺点:
只能扩展函数,消息,不能扩展字符段,变量等[所以说不能替代继承]
Category 命名规范:
一般:
要扩展的类名+扩展变量.[h/m]
比如:
NSString + ReverseString.h
NSString + ReverseString.m
unichar == unsigned short 两个字节。
"%C" 这个C是大c,和语音中的c不一样。
appendString 添加到字符串里。
实现.m函数私有化[只给.m函数提供调用]
@interface Foo (Private)//这样声明 -(void) test2; @end @implementation Foo -(void) test { [self test2]; } -(void) test2 { NSLog(@"test2 is calling"); } @end
(2)Category使用方法
(3)字符串翻转方法Category扩展
相关文章推荐
- 黑马程序员——OC基础学习(五)---分类(Category),代码块Block和protocol代理设计模式
- OC基础--分类(category) 和 协议(protocol)
- oc中protocol、category和继承的区别
- iOS中OC给Category加入属性
- OC中Category的注意点
- iOS复习 OC语言 类目Category/类扩展Extension
- 结合 category 工作原理分析 OC2.0 中的 runtime
- OC中的类别Category-协议Protocol-…
- 黑马程序员——OC语言学习——关键字id、构造方法、Category-分类、类的本质、 description方法、 SEL方法
- OC学习那些事:Category
- 黑马程序员 -- OC语言 Category 类深入 描述
- 黑马程序员—— OC加强---ARC+Category+Block
- oc的分类category
- OC基础学习——Block语法的学习和Category与Extension的初步认识
- OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数
- 黑马程序员----OC学习笔记之category,extension,protocol
- iOS OC中分类Category实现原理
- swift开发 创建Extension(即OC中的category)
- OC 中的分类(Category)详解
- OC分类(Category)的作用和注意事项