NSString *key = NSStringFromSelector(_cmd);

NSString *key = NSStringFromSelector(_cmd); 

在Objective-C中,_cmd 是一个隐含的参数,代表当前方法的选择器(Selector)。而 NSStringFromSelector(_cmd) 是一个宏,用于将传入的选择器转换成对应的字符串(NSString类型)。

让我们来逐步解释这行代码:

_cmd:在Objective-C方法的实现中,_cmd 是一个特殊的局部变量,它表示当前方法的选择器。选择器是Objective-C运行时中的一种数据类型,用于在运行时唯一地标识一个方法。

NSStringFromSelector():这是一个宏,其功能是将传入的选择器转换成对应的NSString对象,也就是将选择器的名字转换为字符串形式。

NSString *key = NSStringFromSelector(_cmd);:这行代码将当前方法的选择器转换成NSString对象,并将其存储在名为 key 的NSString指针变量中。

通常,这种技术被用于实现一些基于方法名的动态行为,例如在运行时构建字典、关联对象或进行方法交换等。通过将方法名转换为字符串,我们可以在运行时以字符串形式使用方法名,从而实现动态的操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 2,082评论 0 9
  • 我们常常会听说 Objective-C 是一门动态语言,那么这个「动态」表现在哪呢?我想最主要的表现就是 Obje...
    Ethan_Struggle阅读 2,349评论 0 7
  • Objective-C作为面向对象编程,“对象”(object)就是“基本构造单元”(building block...
    Mark_Lin阅读 411评论 0 1
  • 1.说说OC的消息机制? OC中的方法调用其实都是转成了objc_msgSend函数的调用,给receiver(方...
    齐玉婷阅读 559评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,680评论 1 32

友情链接更多精彩内容