文档章节

respondsToSelector 的使用

Matsonga
 Matsonga
发布于 2016/03/01 21:26
字数 308
阅读 17
收藏 1
  • -(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例

  • -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例

  • -(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递)

  • +(BOOL) instancesRespondToSelector: selector 用来判断实例是否有以某个名字命名的方法. 和上面一个不同之处在于, 前面这个方法可以用在实例和类上,而此方法只能用在类上.

  • -(id) performSelector: selector

     

    SEL sel = @selector (start:) ; // 指定action  

    if ([obj respondsToSelector:sel]) 

    { //判断该对象是否有相应的方法  

    [obj performSelector:sel withObject:self]; //调用选择器方法  

    使用[[UIApplication sharedApplication] keyWindow]查找应用程序的主窗口对象


    respondsToSelector判断是否实现了某方法

    Tester.h

    复制代码

    #import <Foundation/Foundation.h>


    @interface Tester : NSObject {
       
    }

    -(void) test:(NSString*) msg;

    -(void) notImp;

    @end

    复制代码

    Tester.m

    复制代码

    #import "Tester.h"

    @implementation Tester

    -(void) test:(NSString*) msg
    {
       NSLog(
    @"%@", msg);
    }

    @end

    复制代码

    注意:没有实现notImp方法

    main.m

    复制代码

    #import <Foundation/Foundation.h>
    #import
    "Tester.h"

    int main (int argc, const char * argv[])
    {

       NSAutoreleasePool
    * pool = [[NSAutoreleasePool alloc] init];

       id tester
    = [[Tester alloc] init];//注意,这里使用id
       
       SEL testSelector
    = @selector(test:);
       SEL notImpSelector
    = @selector(notImp:);
       
       
    if([tester respondsToSelector:testSelector])
       {
           
    //tester.m中实现了test方法
           [tester test:@"invoke test method"];
       }
       
    if([tester respondsToSelector:notImpSelector])
       {
           
    //test.m中没有实现此主就去
           [tester notImp];
       }
       

       [pool drain];
       
    return 0;
    }


本文转载自:http://blog.csdn.net/chengyingzhilian/article/details/7930398

Matsonga
粉丝 0
博文 17
码字总数 8857
作品 0
大连
程序员
私信 提问
tableview 间隔线 separator 与左边界间距调整

swift: 调整与左边间隔 = 10 viewdidload 中 self.onSetMarginOrInset(true, fSetOffset: 10, cell: nil) //先调用一次 priceTable.registerClass(ScreenStyleCell.self, forCellReuseIdent......

夕阳_jhe
2015/12/08
97
0
iOS7的Cell的分割线宽度不满屏的解决方法

-(void)viewDidLayoutSubviews { if ([self.tableviewrespondsToSelector:@selector(setSeparatorInset:)]){ [self.tableview setSeparatorInset:UIEdgeInsetsZero]; } if([self.tableview r......

啊子同
2015/12/18
33
0
去除tableViewCell的横线和屏幕的间距

-(void)viewDidLayoutSubviews { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { [self.tableView setSeparatorInset: UIEdgeInsetsZero]; } if ([self.tableVi......

我爱觉觉
2015/10/29
55
0
IOS UITableViewCell分割线

-(void)tableView:(UITableView )tableView willDisplayCell:(UITableViewCell )cell forRowAtIndexPath:(NSIndexPath *)indexPath{ if ([tableView respondsToSelector:@selector(setSepara......

王斌_Duke
2016/03/24
16
0
UITableViewCell 分割线

表格分割线大家懂的,默认并不是从最左侧开始的 在ipad中,发现,分割线距离最左和最右侧,都有距离 在iphone中,只有左侧有空隙 去掉分割线:设置UITableView的separatorStyle = UITableVie...

asjoker
2016/01/19
78
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部