/**
1).判断对象是不是指定类的对象或者指定类的子类对象.
- (BOOL)isKindOfClass:(Class)aClass;
2).判断对象是不是1个特定类型的对象,不包括子类.
- (BOOL)isMemberOfClass:(Class)aClass;
3).判断1个类是不是另外1个类的子类.
+ (BOOL)isSubclassOfClass:(Class)aClass;
4).判断对象中是否能响应指定的方法. 这个最常用.
- (BOOL)respondsToSelector:(SEL)aSelector;
5).判断类中是否能响应指定方法.
+(BOOL)instancesRespondToSelector:(SEL)aSelector;
*/
#import <Foundation/Foundation.h>
#import "DogSon.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 3).判断1个类是不是另外1个类的子类.
Class c = [Dog class];
BOOL res = [DogSon isSubclassOfClass:c];
NSLog(@"%d",res);
}
return 0;
}
// 判断 某个类是否能相应制定方法
void demo3(){
SEL s = @selector(play);
BOOL res = [Dog instancesRespondToSelector:s];
NSLog(@"%d",res);
}
// 判断某个对象能否相应某个方法
void demo2()
{
Dog *son = [DogSon new];
SEL s = @selector(play);
BOOL res = [son respondsToSelector:s];
NSLog(@"%d",res);
}
// 判断对象是不是1个特定类型的对象,不包括子类.不包括父类
void demo1(){
DogSon *son = [DogSon new];
// 获取狗的类对象
Class dog = [Dog class];
// 判断对象是不是1个特定类型的对象,不包括子类.不包括父类
BOOL res = [son isMemberOfClass:dog];
NSLog(@"%d",res);
}
// 判断某个对象是否是某个类创建出来的对象
void demo()
{
DogSon *son = [DogSon new];
// 获取小狗的类对象
Class dog = [DogSon class];
//检查son对象是否是小狗类创建出来的对象
BOOL res = [son isKindOfClass:dog];
NSLog(@"%d",res);
}
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Dog *d = [Dog new];
//- (void)run;
[d performSelector:@selector(run)];
//- (void)name:(NSString *)name;
[d performSelector:@selector(name:) withObject:@"哈利"];//方法名是name:,performSelector:withObject:是方法名,
}
return 0;
}