博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C中的Category
阅读量:6942 次
发布时间:2019-06-27

本文共 781 字,大约阅读时间需要 2 分钟。

转自:

Objective-C中的Category也是非常常用的功能之一。category可以为已经存在的类增加方法,而不需要增加一个子类,另外category使得我们在不知道某个类的内部实现的情况下为该类增加方法。

如果我们想增加某个框架中的类的方法,category就非常有效。通过类别所添加的新方法就成为类的一部分,在运行时,新添加的方法和已经存在的方法在使用上没有任何区别,通过类别为类所添加的方法和别的方法一样会被它的子类所继承。类别接口的定义看起来很像类接口定义,而不同的是类别名使用圆括号列出,它们位于类名后面。类别必须导入它所扩展的类的接口文件,标准的语法格式如下:

#import “类名.h”

@interface 类名 (类别名)

@end

和类一样,类别的实现也要导入它的接口文件,一个常用的命名约定是,类别的基本文件名是这个类别扩展的类的名字后面跟类别名。因此,一个名字为”类名”+“类别名”+“.m”的实现文件看起来就如下:

#import “类名类别名.h”

@implementation 类名 (类别名)

@end

注意:类别并不能为类声明新的实例变量,它只包含方法,然后在类作用域中的所有实例变量,都能被这些类别方法所访问。它们包括为类声明的所有实例变量,甚至那些被@private修饰的变量,可以为一个类添加多个类别,但每个类别名必须不同,而且每个类别都必须声明并实现一套不同的方法。

要记住的是,当我们通过category来修改一个类的时候,它对应用程序里的这个类的所有对象都起作用,跟子类不一样,category不能增加成员变量,我们还可以用category来写类原先的存在的方法。

转载于:https://www.cnblogs.com/hxxy2003/archive/2013/04/16/3023668.html

你可能感兴趣的文章
iOS实现地图半翻页效果--老代码备用参考
查看>>
走过电竞之路的程序员
查看>>
JQ 获取地址栏参数
查看>>
关于AFNetworking访问网络超时的设置
查看>>
让前端独立于后端进行开发,模拟数据生成器Mock.js
查看>>
微信公众平台开发—利用OAuth2.0获取微信用户基本信息
查看>>
golang遇到的win下读取txt字符乱码的问题
查看>>
Binary Search--二分查找
查看>>
《计算机图形学》2.1.6 三维观察设备 学习笔记
查看>>
QT在线
查看>>
以P2P网贷为例互联网金融产品如何利用大数据做风控?
查看>>
Polymer初探
查看>>
zprofiler三板斧解决cpu占用率过高问题(转载)
查看>>
深入浅出NIO Socket实现机制
查看>>
bzoj 1930: [Shoi2003]pacman 吃豆豆 [费用流]
查看>>
(数字IC)低功耗设计入门(三)——系统与架构级低功耗设计
查看>>
Dynamics CRM2016 新功能之从CRM APP中导出数据至EXCEL
查看>>
Android——推断Service是否已经启动
查看>>
subprocess模块
查看>>
大数据入门基础系列之初步认识大数据生态系统圈(博主推荐)
查看>>