栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

相当于_cmd的快捷方式是多少?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

相当于_cmd的快捷方式是多少?

没有与的Swift等效项

_cmd
。没有理由在Swift中使用它。

_cmd
在Objective-
C中考虑。什么时候有用?大多数情况下,的值
_cmd
将与代码所在的方法的名称相同,因此在编译时就已知道该值,并且不需要运行时值。以下是一些可能
_cmd
在Objective-
C中有用的情况:

  • 在宏中。该宏在代码中展开,因此,如果
    _cmd
    出现在宏中,则将其插入使用它的源中,因此可以在宏内部使用方法名称。但是,这样的宏在Swift中不存在。Plus宏是编译时的,因此类似的编译时机制
    __FUNCTION__
    也可以类似地工作。
  • 您可以定义一个采用
    self
    和的C函数
    _cmd
    ,并将其(与同一方法一起使用)作为多种方法的实现,方法是使用
    class_addMethod
    和将其添加到函数中
    class_replaceMethod
    _cmd
    该函数内部将有助于区分不同的方法调用。但是,
    class_addMethod
    并且
    class_replaceMethod
    在Swift中不可用。
  • 方法混乱也是与方法实现混在一起的过程。由于在交换中交换了两个方法的实现,
    _cmd
    将有助于显示调用中使用的实际方法名称,这可能与源代码中代码所在的方法不匹配,因为实现被交换了。我猜方法在Swift中仍然可能出现混乱,因为在Swift
    method_exchangeImplementations
    中仍然可用。但是在方法混乱中,要交换的方法是针对与其交换的方法量身定制的,因此,如果调用了该方法,则不会混淆哪个方法的名称被调用。
  • 如果您手动获取方法的
    IMP
    (实现函数),然后使用其他选择器手动调用它。在这种情况下,函数内部可以看到中的其他选择器
    _cmd
    。但是,您不必担心在Swift中会因为获取的
    IMP
    方法不可用而担心。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号