ObjC中_cmd的用法

_cmd在Objective-C的方法中表示当前方法的selector,正如同self表示当前方法调用的对象实例。

基本用法

//比如需要打印当前被调用的方法,可以在一个方法中添加:

NSLog(@"%@ call",NSStringFromSelector(_cmd));


还有一种用法是在runtime的时候,比如在某个分类方法里为对象动态添加属性,由于_cmd是在编译时候(compile-time)就已经确定的值,所以可以直接使用


@implementationUICollectionView (CollectionDataDelegateAdditions)

- (MVVMCollectionDataDelegate*)collectionHander

{

      return  objc_getAssociatedObject(self,_cmd);

}

- (void)setCollectionHander:(MVVMCollectionDataDelegate*)collectionHander

{

        if(collectionHander) {

                 [collectionHander   handleCollectionViewDatasourceAndDelegate:self];

       }

       objc_setAssociatedObject(self,@selector(collectionHander), collectionHander,OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

@end

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

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 2,082评论 0 9
  • _cmd在Objective-C的方法中表示当前方法的selector,正如同self表示当前方法调用的对象实例。...
    botherbox阅读 20,213评论 11 65
  • Runtime是一套比较底层的纯C语言API,包含了很多底层的C语言API。在我们平时编写的OC代码中,程序运行时...
    这个年纪的情愫丶阅读 704评论 5 3
  • 你的未婚妻是不是你心仪的女神?买房是不是越来越难,房团惠小编认为应该看到一个方向,那就是一线城市一是买不起,二是供...
    胖乎乎的胖子阅读 1,322评论 0 0
  • 读完《了不起的盖茨比》,停下来写一点感受,心中某名的情绪,转换成文字的话可能会舒坦一些。看不太明白,却有种淡淡的忧...
    Jennymer阅读 482评论 0 0

友情链接更多精彩内容