`
836811384
  • 浏览: 554736 次
文章分类
社区版块
存档分类
最新评论

Category(分类)的使用

 
阅读更多
无论一个类设计的如何完美,都不可避免的会遇到没有预测到的需求,那怎么扩展现有的类呢?当然,继承是个不错的选择。但是Objective-C提供了一种特别的方式来扩展类,叫Catagory,可以动态的为已经存在的类添加新的行为。这样可以保证类的原原来的基础上,较小的改动就可以增加需要的功能。使用Category对类进行扩展时,不需要访问其源代码,也不需要创建子类,这样我们可以扩展系统提供的类。Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。

classname+categoryname.h

#import "ClassName.h"
@interface ClassName ( CategoryName )// 方法声明
-(void) newMethod;
@end

classname+categoryname.m

#import "classname+categoryname.h"
@implementation ClassName (CategoryName)

-(void) newMethod{
}

@end

那的Category的使用场景有那些呢:

1、类包含了很多个方法实现,而这些方法需要不同团队的成员来实现

2、当你在使用基础类库中的类时,你不想继承这些类而只想添加一些方法时。

Category能实现上面的需求,当然也有使用Category是需要注意的问题:

1、Category可以访问原始类的实例变量,但不能添加实例变量,如果想添加变量,那就通过继承创建子类来实现。

2、Category可以重载原始类的方法,不大不推荐这么做,这样会覆盖掉原始类的方法。如果确实要重载,那就通过继承创建子类来实现。

3、和普通接口有所区别的是,在Category的实现文件中的实例方法只要你不去调用它你可以不用实现所有声明的所有方法。


分享到:
评论

相关推荐

    iOS常用的Category分类

    iOS常用的Category分类你值得拥有。iOS常用的Category分类你值得拥有。

    淘宝产品目录分类category.sql

    淘宝产品目录分类category.sql

    【102种花卉分类数据集】102 Category Flower Dataset

    Pytorch实现102类鲜花分类——102 Category Flower Dataset 数据集介绍:102 Category Flower Dataset 数据集由102类产自英国的花卉组成,每类由40-258张图片组成,文件夹种分为训练集train和验证集valid,符合...

    php无限分类Category类库

    一个php无限分类Category类库 1、通过include包含类库 2、通过new实例化类 3、调用getList()方法获取所有分类列表 4、返回:所有分类列表,可以通过获取fullname显示参考。

    php无限分类Category类库.zip

    一个php无限分类Category类库 1、通过include包含类库 2、通过new实例化类 3、调用getList()方法获取所有分类列表 4、返回:所有分类列表,可以通过获取fullname显示参考。

    iOS 中Category用法

    Objective-C提供了一种特别的方式来扩展类,叫Catagory,可以动态的为已经存在的类添加新的行为。...Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。

    Category类库:php无限分类类库

    Category类库是一个php无限分类类库

    WordPress不同分类使用不同的文章模板的方法

    WordPress 不同分类使用不同的文章模板方法 在 WordPress 中,使用不同的文章模板对于不同的分类是非常有必要的,这可以让我们的网站更加丰富多样化。本文将介绍两种方法来实现 WordPress 不同分类使用不同的文章...

    浅析Objective-C中分类Category的使用

    主要介绍了浅析Objective-C中分类Category的使用,使用Category对类进行扩展可以访问原始类的实例变量,需要的朋友可以参考下

    淘宝分类category.sql.zip

    2019最新从淘宝网商品类目,80多万条,近200MB数据,含完整的表结构及insert语句,希望能对大家有帮助

    Category类库:php无限分类类库.zip

    Category类库是一个php无限分类类库,感兴趣的朋友们可以下载下来,用到自己的项目中。

    no category parents

    WordPress 设置固定链接后,分类链接前面会很不识时务地出现category,不少人认为category的出现会影响SEO或者很不美观,今天李攀科博客给大家介绍了一款去掉WP分类链接category的插件No category parents支持3.1...

    wordpress去除分类URL的category

    博主们在使用WordPress搭建的网站时,可能会发现文章的URL地址中默认都会带有Category,URL中带有Category可能既影响用户体验,也不利于SEO地址规范化,因此和大家分享一下去除URL中Category的方法。 首先登录到...

    iOS开发-解决Xcode15无法创建category问题

    Xcode升级到iOS15以后发现无法创建category了,现已找到解决方案供大家参考。 这是由于Xcode15缺少了"CategoryNSObject"和"ExtensionNSObject"两个文件夹导致的,解决办法就是将这两个加进去就好了。 如果你有旧的...

    my-category-order.2.8.7_cn.zip_ my category order_My-Category-Or

    My Category Order排序插件for WordPress,目前为my category order.2.8.7 ...WordPress默认分类列表是按照名称顺序显示的,修改一下调用函数的参数后也仅可以使用分类ID顺序。用此插件分类列表的排序方式能够自行控制

    wordpress检查页面是否归属特定分类函数:in_category()

    in_category()函数的作用是检查当前或者指定页面是否归属于特定的分类目录,通常用于给不同的分类目录设置不同的文章模板。 【函数用法】 【参数说明】 $category 参数$category(必需)一个或多个目录ID ...

    去掉WordPress分类目录链接中的/category/的方法!

    去掉WordPress分类目录链接中的/category/的方法!

    joomla category模块

    joomla category模块,列出分类列表

Global site tag (gtag.js) - Google Analytics