instancesRespondToSelector与respondsToSelector的区别
instancesRespondToSelector与respondsToSelector的区别
Test1.h

@interface Test1 : NSObject - (void)objectFun; + (void)classFun; @end

Test1.m

@implementation Test1 - (void)objectFun
{
NSLog(@"object function");
} + (void)classFun
{
NSLog(@"class function");
} @end

测试类:

BOOL flag; flag = [Test1 instancesRespondToSelector:@selector(objectFun)]; //YES flag = [Test1 instancesRespondToSelector:@selector(classFun)]; //NO flag = [Test1 respondsToSelector:@selector(objectFun)]; //NO flag = [Test1 respondsToSelector:@selector(classFun)]; //YES Test1 *obj = [[Test1 alloc] init]; flag = [obj respondsToSelector:@selector(objectFun)]; //YES flag = [obj respondsToSelector:@selector(classFun)]; //NO

总结:
1. instancesRespondToSelector只能写在类名后面,respondsToSelector可以写在类名和实例名后面。
2. [类 instancesRespondToSelector]判断的是该类的实例是否包含某方法,等效于:[该类的实例 respondsToSelector]。
3. [类 respondsToSelector]用于判断是否包含某个类方法
instancesRespondToSelector与respondsToSelector的区别的更多相关文章
- performSelector和respondsToSelector用法
一.performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便 ...
- Swift关于Any,AnyObject,AnyClass的区别与联系
在Swift语言中,协议定义类或结构体应该遵守的变量和方法集合,如下所示,这个一个标准的协议的声明: protocol NSObjectProtocol { func isEqual(object: ...
- Storyboard里面的几种Segue区别及视图的切换:push,modal,popover,replace和custom
一.视图切换类型介绍 在storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的. 在iphone中,segue有:push,modal,和cus ...
- respondsToSelector的使用
- (BOOL)respondsToSelector:(SEL)aSelector; 用来判断是否有以某个名字命名的方法 +(BOOL) instancesRespondToSelector: sel ...
- respondsToSelector的相关使用
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例 -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例 -( ...
- oc(object-c)知识汇总/总结/区别对比(持续更新)
1.判断某个类是否实现了某方法: A *a =[[A alloc] autorelease]; if([a respondsToSelector:@selector(methodName)]){ // ...
- id和NSObject *和instanceType的区别与联系
id 被成为万能指针,也就是可以指向任何对象. NSObject * 本身就是定义指向NSObject类型的指针. 那么这两者有什么区别吗? 这两者都是既可以作为返回值,又可以作为变量修饰.而其主要区 ...
- performSelector调用和直接调用的区别
今天在准备出笔试题的过程中随便搜了一下其他的笔试题,看到其中一个就是关于performSelector与直接调用的区别. 个人感觉这其实是一个陷阱题,因为大部分应用场景下,用哪一种都可以,可以说是没有 ...
- iOS中respondsToSelector与conformsToProtocol的相关理解和使用
respondsToSelector相关的方法 : -(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例 -(BOOL) isMemberOfClass: ...
随机推荐
- ejabberd 在eclipse(erlide)中的配置、调试、运行
最近在折腾ejabberd,将ejabberd项目配置到eclipse中进行编译.调试等,现在将过程记下来,希望能帮助到需要的人. 准备 本次环境是在linux中进行,博主的linux是fedora2 ...
- JavaScript对寄生组合式继承的理解
有关JavaScript的几种继承方式请移步JavaScript的几种继承方式 原型链的缺陷 SubType.prototype = new SuperType(); 这样做的话,SuperType构 ...
- MySQL语句执行顺序
执行顺序:见:http://www.cnblogs.com/rollenholt/p/3776923.html 下面我们来具体分析一下查询处理的每一个阶段 FORM: 对FROM的左边的表和右边的表计 ...
- zk textbox 更改字体大小及高度
.z-textbox{ height:100px; font-size:30px; padding:20px; } <textbox/> 效果如下:
- Heartbeat+DRBD+MySQL高可用方案
1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自 ...
- bzoj 4503 两个串
Description 兔子们在玩两个串的游戏.给定两个字符串S和T,兔子们想知道T在S中出现了几次, 分别在哪些位置出现.注意T中可能有“?”字符,这个字符可以匹配任何字符. Input 两行两个字 ...
- Unity学习疑问记录之查找
unity中提供了获取对象的五种方法: 通过对象名称(Find方法) 通过标签获取单个游戏对象(FindWithTag方法) 通过标签获取多个游戏对象(FindGameObjectsWithTags方 ...
- 关于malloc函数的动态分配问题
malloc函数动态分配了一个整型的内存空间,让abc都指向刚申请的空间,所以只有最后一个赋值语句的值保留在了空间里 #include<stdio.h> main() { int *a,* ...
- rabbitmq之back queue草稿
申请队列rabbit_reader在收到消息后处理数据帧时,如果channel id不是0(0代表连接),则认为是channel相关方法. handle_frame(Type, Channel, Pa ...
- ASP.Net一键自动化更新代码、编译、合并dll、压缩js、css、混淆dll、zip打包、发布到测试环境的bat批处理
不废话,直接代码: D: cd D:\src\testproj\PrecompiledWeb svn revert ../ -R svn update .. rmdir BS /S /Q C:\Win ...