我的课有问题。这是我的代码:
self.shapeClass = [HWRectangle class];
if ([_shapeClass isKindOfClass:[HWRectangle class]]) {
NSLog(@"Class created as: %s", [_shapeClass description]);
}
我认为该程序将在这种情况下进行日志记录,但事实并非如此。你知道为什么不知道吗?
答案 0 :(得分:3)
因为:if ([_shapeClass isKindOfClass:[HWRectangle class]])
_shapeClass
应该是您正在测试的类的实例,除非您真的在测试类比较。所以,这个方法是类比较的实例,而不是类到类的比较。
对于奖励积分,您的格式字符串应为:NSLog(@"Class created as: %@", [_shapeClass description])
(除非你已经覆盖了NSObject方法(你不应该这样做))
答案 1 :(得分:0)
isKindOfClass检查变量的类。你说shapeCalls = [HWRectangle类]。 [HWRectangle类]的结果是“Class”类。因此,如果将其与HWRectangle类进行比较,您会发现两者不同。