有时,在父类中需要提前用到子类的类名,来判断方法的响应。一般情况下,直接文件包含即可,但是因为子类一定会引用父类,如果在父类里又引用子类,那肯定会重复引用。为了避免文件重复引用,可以在类前面用@class + 类名的方式来声明。
@class subclass;
[self isKindOfClass:[subClass class]]
即使这样,编译器还是会有警告,为了避免警告,可以用以下方式来达到同样目的:
[selfisKindOfClass:NSClassFromString(@"subClass")]
将其转化为字符串,编译器就不再会有警告了。