黑马程序员技术交流社区

标题: 判断对象是否能响应指定的方法 [打印本页]

作者: yibyli    时间: 2015-9-5 14:38
标题: 判断对象是否能响应指定的方法
1)
(BOOL)respondToSelector:SEL       判断实例是否有这样的方法
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str = @"123";
        if([str respondsToSelector:@selector(appendString:)])
        {
            NSLog(@"str 对象有appendString:这个方法");
        }
    }
    return 0;
}
2015-09-05 14:23:37.477 test111[523:12834] str 对象有appendString:这个方法


2)
(BOOL)instancesRespondToSelector:SEL    判断一个类是否有这个方法
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        if([NSString instancesRespondToSelector:@selector(stringWithFormat:)])
        {
            NSLog(@"NSString 类有stringWithFormat:这个方法");
        }
    }
    return 0;
}

但是这里没有输出,也就是返回NO,有点奇怪,NSString类明明有这个方法,却显示没有,想了半天也不知道为什么

作者: yushimin763    时间: 2015-9-5 16:21
学习一下!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2