Snail—OC学习之类别Category

类别就是向类添加一些有用的功能或者方法 利于开发 类可以是系统类、可以是自定义类

类别跟子类是不一样的,类别只能添加一些方法 属性变量什么的不可以添加

不创建新类,即可对已有类进行扩展

做项目的时候 跟其他程序员会更好的合作

新建类别的图放在最后面

我们为系统类NSArray添加一个打印方法 使得能输出中文
界面如下

然后再NSArray+MyNSLog.h中声明一个函数

#import <Foundation/Foundation.h>

@interface NSArray (MyNSLog)

- (NSString *)printChinese;

@end

然后再NSArray+MyNSLog.m中实现

#import "NSArray+MyNSLog.h"

@implementation NSArray (MyNSLog)

- (NSString *)printChinese{
    
    NSMutableString * string = [[NSMutableString alloc] init];
    [string appendString:@"{\n"];
    //我们是位系统类NSArray添加一个能打印出中文的功能 即下面的self是指的我们要输出的数组
    //即就是要输出中文的数组
    for (int i = 0; i < self.count; i++) {
      //字符串可以输出中文
      [string appendFormat:@"\t%@,\n",self[i]];
    }
    [string appendFormat:@"}"];
    
    return string;
}

@end

在main.m中只需引入类别的头文件即可 如果是自定义的类 也是只需把类别的头文件进入即可

#import <Foundation/Foundation.h>
#import "NSArray+MyNSLog.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        NSArray * array = @[@"我是",@"蜗牛",@"Snail"];
        //系统的输出结果 中文已乱码
        /*
         (
         "\U6211\U662f",
         "\U8717\U725b",
         Snail
         )
         */
        NSLog(@"%@",array);
        
        //当我们用添加的那个功能输出时 中文可以输出来
        /*
         {
         我是,
         蜗牛,
         Snail,
         }
         */
        NSLog(@"%@",[array printChinese]);
    }
    return 0;
}

下面把新建类别的图附上

首先,新建的适合选择下面这个文件

下一步,然后 在第一行 写你自己定义的类别名称  第二行 是你要为哪个类添加类别

然后下一步 保存即可,就可以看到新建出来了一个类似类的两个文件

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值