当前位置:网站首页>OC-范畴
OC-范畴
2022-08-02 06:50:00 【彭同学她同桌】
范畴的主要目的是防止一个拥有众多方法的类太长
可以将类中的方法分散在多个范畴中
范畴属于类 可以看作给类的方法分组
用法
@interface 类名(范畴名)
方法的声明
@end
@implementation 类名(范畴名)
方法的定义
@end
主要目的就是将众多的类方法分散在多个范畴中 在.h文件中声明所有的范畴 但是在不同的.m中定义不同的范畴
关于在范畴中添加属性声明@property
注意!在范畴的声明中不能直接声明变量 只能通过写@property int a;然后在正常状态下@preperty会自动定义set和get方法 但是如果这个@property是声明在范畴中就会不会在定义中自动创建 并且不能在范畴定义中写@synthesize 需要自己手动实现 因为防止随意访问同一个类的不同文件中定义的实例变量
关于在多个范畴中重写同一个方法
最后一次编辑(比如在这个范畴的方法中加一个空格都行)的是哪个范畴中的方法就是调用哪个范畴中的方法 范畴重写的方法一定能覆盖原有方法(也就的在类中定义的那个)
类拓展 就是没有名字的范畴
类拓展可以声明实例变量但是类拓展也只能声明
实现一定只能在主实现中
#interface A()//就是括号里不写东西
{
int a;
}
-()say;
关联引用
可以为一个对象增加多个引用
必须使用确定的不再改变的地址作为键值 例如静态局部变量
import<objc/runtime>
void objc-setAssociatedObject(id object,void *key,id value,objc_AssociationPolicy policy)
为对象object添加以key指定的地址作为关键值 以value为值的关联引用 plicy指定关联引用的存储策略
通过将value指定为nil就可以删除key的关联
id objc_getAssociatedObject(id object,void *key)
返回object以key为关键字关联的对象 如果没有关联到任何对象则返回nil
实例
边栏推荐
- 埋点开发流程
- Expert Insights | 3 ways to seize innovation opportunities in a downturn
- 入门opencv,欢笑快乐每一天
- 返回文件名问题
- Clapper that can interact with the audience in real time
- Resolving C# non-static field, method or property "islandnum.Program.getIslandCount(int[][], int, int)" requires an object reference
- C# FileInfo class
- 数据库概论之MySQL表的增删改查1
- July 18-July 31, 2022 (Ue4 video tutorials and documentation, 20 hours. Total 1412 hours, 8588 hours left)
- 你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑
猜你喜欢

每周推荐短视频:为什么产品开发需要数字化?如何做到数字化?

实验7 MPLS实验

See the picture to understand | How to choose sales indicators to measure the health of business growth

张驰课堂:六西格玛培训工具——箱线图

【故障诊断分析】基于matlab FFT轴承故障诊断【含Matlab源码 2001期】

jvm 二之 栈帧内部结构

Specified URL is not reachable,caused by :‘Read timed out

(2022牛客多校五)D-Birds in the tree(树形DP)

文件上传漏洞(二)

HCIP day 3 experiment
随机推荐
【暑期每日一题】洛谷 P1192 台阶问题
Vscode连接远程服务器出现‘Acquiring lock on/home/~’问题
gdalinfo: error while loading shared libraries: libgdal.so.30: cannot open shared object file: No su
【暑期每日一题】洛谷 P3156 【深基15.例1】询问学号
【机器学习】实验2布置:基于回归分析的大学综合得分预测
交换部分 VLAN
【机器学习】实验1布置:基于决策树的英雄联盟游戏胜负预测
实例026:递归求阶乘
Neo4j 中文开发者月刊 - 202207期
Two good php debug tutorials
每周推荐短视频:为什么产品开发需要数字化?如何做到数字化?
Connection reset by peer 问题解析
第06章 索引的数据结构【2.索引及调优篇】【MySQL高级】
实例030:回文数
【故障诊断分析】基于matlab FFT轴承故障诊断(包络谱)【含Matlab源码 2002期】
“蔚来杯“2022牛客暑期多校训练营4,签到题NDKHL
Wuhan 2022 organizing of the high-performance computing added new ecological development of high-performance computing
实例029:反向输出
如何设计静态资源缓存方案
根据一个字段的内容去更新另一个字段的数据,这样的sql语句该怎么样书写