tags: OC 30 day
编译检查
编译器在编译的时候,判断一个指针是否可以调用指针的对象方法。
判断的準则就是指针类型。
OC的编译器是LLVM,不是Xcode,Xcode是IDE。
意味着我们可以把编译器骗过。
就算骗过了编译器,程序在运行的时候还会做运行检查。
我们写的程序就算编译通过了,不意味着可以完美的执行。
我们就希望,我们可以写代码来判断一下,对象中是否有这个方法,如果有再去执行,如果没有就不要执行。
判断指针指向的得向是否有这个方法可以去执行。 BOOL b1 = [p1 respondsToSelector:@selector(sayHi)];
判断指定的对象是否为 指定类的对象或者子类对象- (BOOL)isKindOfClass:(Class)aClass;
判断对象是否为指定类的对象,不包括子类。- (BOOL)isMemberOfClass:(Class)aClass;