categories是Objective-C语言的一个特性,这个特性可以允许你向现有的类中添加方法,而不需要去写一个子类。categories中添加的方法和现有类中本来就有的方法在运行时是没有差异的。categories中添加的方法将成为现有类的一部分,并且被现有类的子类继承。

和delegate(委托)一样,categories并不是严格的适应Decorator(装饰)模式,虽然履行了意图,但是是采取了不同的方式来实现的。categories添加的行为是编译时得产物,而不是动态的获取。而且,categories不封装正在扩展的类的实例。

Cocoa框架定义了很多的categories,大多数是非正式协议。使用categories有两点需要注意:

1.categories中不能添加实例变量。

2.如果你覆盖了现有类的方法,程序的行为将无法预测。

代码示例如下

#import <Foundation/Foundation.h>
@interface NSString(TestCategories)
- (void)testCategories;
@end
#import "TestCategories.h"
@implementation NSString(TestCategories)
- (void)testCategories
{NSLog(@"This is a test");
}
@end
#import "TestCategories.h"
int main(int argc, char *argv[])
{NSString * test = @"test";[test testCategories];
}

Categories(分类,类别)相关推荐

  1. hexo博客中添加categories分类

    title: hexo博客中添加categories分类 date: 2020-04-01 16:45:16 tags: hexo categories: 学习 方法如下: 在根目录下scaffold ...

  2. 神经网络结构设计指导原则——输入层:神经元个数=feature维度 输出层:神经元个数=分类类别数,默认只用一个隐层 如果用多个隐层,则每个隐层的神经元数目都一样...

    神经网络结构设计指导原则 原文   http://blog.csdn.net/ybdesire/article/details/52821185 下面这个神经网络结构设计指导原则是Andrew NG在 ...

  3. channelinboundhandler中都包含了哪一类的方法_标准气体的分类类别与相关气体配置方式方法...

    标准气体的分类类别与相关气体配置方式方法 在我们进行物理化学实验.生物工程.标准环境测量.工程实验测量等用于校准测量仪器的测量过程中,都会用到各种标准气体,标准气体测量是确定各项数值的专业测量标准. ...

  4. 深度学习分类类别不平衡_「图像分类」 关于图像分类中类别不平衡那些事

    作者&编辑 | 郭冰洋 1 简介 小伙伴们在利用公共数据集动手搭建图像分类模型时,有没有注意到这样一个问题呢--每个数据集不同类别的样本数目几乎都是一样的.这是因为不同类别的样例数目差异较小, ...

  5. 深度学习分类类别不平衡_Github|类别不平衡学习资源(上)

    今天推荐的是一个 github 项目,项目地址如下,主要是类别不平衡学习的论文.代码.框架.库等资源 https://github.com/ZhiningLiu1998/awesome-imbalan ...

  6. 深度学习分类类别不平衡_如何应对深度学习中的数据分布不平衡问题

    对数据不平衡的应对 在比赛中经常会遇到数据不平衡的问题,各个类别之间的数据量不平衡容易导致模型对数据量少的类别的检测性能较低.数据不平衡问题可以分为以下两种情况: 大数据分布不均衡.这种情况下整体数据 ...

  7. 【CV】RetinaNet:使用二分类类别不平衡损失 Focal Loss 实现更好的目标检测

    论文名称:Focal Loss for Dense Object Detection 论文下载:https://arxiv.org/abs/1610.02357 论文年份:ICCV 2017 论文被引 ...

  8. 五行代码实现千万类别分类网络,飞桨大规模分类库揭秘

    "桃花一簇无开主,可爱深红爱浅红. 黄四娘家花满蹊,千朵万朵压枝低. 留连戏蝶时时舞,自在娇莺恰恰啼." 春天来了,经过一个冬天的"窖藏",按耐不住的小伙伴纷纷 ...

  9. 学习用Pandas处理分类数据!

    ↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 分类数据(categor ...

  10. SAP零售商品类别层次:为什么(业务视角)?

    SAP零售商品类别层次:为什么(业务视角)? 商品类别(Merchandise Categories)对产品进行分类,但在SAP Retail中,这只是其中的一小部分. 作为上下文,首先让我们区分SA ...

最新文章

  1. 中美首份8000字长文解析全球热点脑机接口(重磅干货)
  2. Linux服务器---网络配置
  3. PAT乙级-1070. 结绳(25)
  4. iOS 日期格式的转换
  5. linux卸载minicoda2,MiniConda2下载 MiniConda python 2.7 v4.3.30.2 Linux 64位 官方免费版(附安装步骤) 下载-脚本之家...
  6. html文件打开是搜索导航,GitHub - bituplink/OneHtmlNav: 单文件html的网络导航页面,简约并不简单...
  7. pycharm通过pytest运行报错:No test were found 解决
  8. Qt程序缺少dll解决方案
  9. Energetically Consistent Invertible Elasticity
  10. tomcat下面的starup.bat的作用
  11. 8uFTP连不上阿里云,4步解决8uFTP连不上阿里云问题
  12. 如何制作万有特性曲线图
  13. 自己制作一个计时器、倒计时器
  14. 鸿蒙10 5G手机,国内首款5G手机!中兴天机Axon 10 Pro 5G版体验点名单一览
  15. typora定制主题分享--绿豆沙背景主题+新night背景主题
  16. 学mysql后的收获_数据库课程学习的收获和心得体会
  17. 熊猫数据集_使用大数据的熊猫
  18. 施工计算机综合应用能力实训,计算机综合应用能力实训报告.docx
  19. CTF_Web:从0学习Flask模板注入(SSTI)
  20. Unity5.x实现简易语音聊天(一) 使用步骤

热门文章

  1. 学习笔记:WEB安全防护
  2. 前途迷茫不知.NET与JAVA那个好
  3. vss服务器的简单使用
  4. 寂静岭:理性与心魔的拔河
  5. MinGW 和 MSYS 的手动安装与环境配置
  6. 生成和查看dump文件
  7. MindSpore实现语音指令识别(迁移tf入门教程)
  8. 概率图模型(PGM)综述-by MIT 林达华博士
  9. 注解-Annotation
  10. 阿里云天池SQL训练营学习记录