9、Category-OC

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扩展




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值