您的位置:首页 > 编程语言 > Go语言

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





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扩展
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: