oc中写c语言的方法,OC语言description步骤和sel
OC语言description方法和sel
OC语言description方法和sel
一、description方法
Description方法包括类方法和对象方法。(NSObject类所包含)
(一)基本知识
-description(对象方法)
使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出。
+description(类方法)
使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@。
使用@%打印对象如(“@%”,P)默认打印输出为,虽然字符串也是对象,但字符串在使用@%打印时情况特殊。
那么应该怎么实现打印对象的所有属性呢?在类的实现中重写description方法。
(二)实现打印对象的所有属性
(三)区别
+description方法决定了类对象的输出结果,即类本身
-description方法决定了实例对象的输出结果,即Person创建的对象。
(四)打印相关补充
二、SEL
SEL:全称Selector 表示方法的存储位置。
方法在内存中是怎么存储的?
Person *p=[[Person alloc] init];
[p test];
寻找方法的过程:
(1)首先把test这个方法名包装成sel类型的数据;
(2)根据SEL数据找到对应的方法地址;
(3)根据方法地址调用相应的方法。
(4)注意:在这个操作过程中有缓存,第一次找的时候是一个一个的找,非常耗性能,之后再用到的时候就直接使用。
关于_cmd:每个方法的内部都有一个-cmd,代表着当前方法。
注意:SEL其实是对方法的一种包装,将方法包装成一个SEL类型的数据,去寻找对应的方法地址,找到方法地址后就可以调用方法。这些都是运行时特性,发消息就是发送SEL,然后根据SEL找到地址,调用方法。
oc中写c语言的方法,OC语言description步骤和sel相关推荐
- OC中数组排序的3种方法
总结OC中数组排序3种方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors: 大体上 ...
- OC基础--OC中的类方法和对象方法
PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似.明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧.重点是自己真的能够区分开! 一.OC中的对象方法 1 ...
- stm32 内部sram大小_在SRAM、FLASH中调试代码的配置方法(附详细步骤)
聊天界面发送嵌入式大杂烩获取1TB大杂烩资料包 STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试.除此之外,SRAM ...
- 5加载stm32 keil_STM32在SRAM、FLASH中调试代码的配置方法(附详细步骤)
因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试.除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要 ...
- OC 中 load 方法和 initialize 方法的异同
+ (void)load; 当类对象被引入项目时, runtime 会向每一个类对象发送 load 消息 load 方法会在每一个类甚至分类被引入时仅调用一次,调用的顺序:父类优先于子类, 子类优先于 ...
- c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法
网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...
- 微信小程序:wxml中写js语句的方法
在小程序开发过程中,有时会遇到需要在wxml页面处理数据的情况,那么都有哪些方法可以实现呢?今天我们来总结两种方法. 第一种:直接在wxml文件中使用wxs标签 <wxs module=&quo ...
- 【1.2】 评价类模型之层次分析法中判断矩阵的填写方法、一致性检验的步骤、以及根据判断矩阵计算权重的方法
目录: 准则层判断矩阵怎么填写 方案层判断矩阵怎么填写 关于判断矩阵和一致矩阵的知识点补充 一致性检验的步骤 怎样通过判断矩阵去计算权重(三种方法),及相应的代码示例 准则层判断矩阵的填写: 填写准则 ...
- CMI的C语言实现方法,C语言——Cmidiv0.6自主和弦模块(测试版)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码: 和弦试听(C语言)模块: #include #include #include #include #include #pragma comment ...
最新文章
- Spark集群搭建中的问题
- wxWidgets 编译 ICON 资源
- 滁州布局创新链服务链~农业大健康·万祥军:谋定功能性农业
- XML文件读取工具类
- laravel无法运行php,Laravel:php artisan服务无法启动
- P-GCN:Graph Convolutional Networks for Temporal Action Localization 2019 ICCV
- JAVA 大作业——DAY 3
- linux 串口 断帧,STM32f103使用串口中断发送数据时出现断帧是什么原因?
- 第4章 更新Erlang.mk
- 空对地(air-to-ground,A2G)通信发展概况与面临挑战
- Rhino在java中的用法
- Webservice 学习笔记
- 未来教育计算机二级2016版,20163未来教育计算机二级题库(操作题).docx
- EUYAO Replayer 节省你好多操作电脑的精力
- 30天自制操作系统(day1)
- Frank-Cucumber - Core Frank Steps
- python 录音vad_语音活性检测器py-webrtcvad安装使用
- 南京:探索实施“电子围栏”管理新模式 缓解商圈周边道路交通拥堵
- vscode配置python环境以及使用json文件配置默认解释器、代码自动保存、pydesigner、kite
- 巴巴腾机器人视频_巴巴腾机器人,没想到你是这样的机器人!