我寻求帮助以了解为什么代码表现得如此奇怪。我有什么:BaseClass : NSManagedObject
和ChildClass : BaseClass
BaseClass 有一个类别。。H:
@interface BaseClass (Category)
+ (NSArray)method;
@end
米:
@implementation BaseClass (Category)
+ (NSArray *)method
{
if ([self isKindOfClass:[ChildClass class]) {
do stuff
return resultArray;
}
return nil;
}
从项目的另一个地方我打电话给*array = [ChildClass method];
. 在 BaseClass (Category) 实现控制台中读取,但由于某种原因,self = (Class)ChildClass
执行流程仍然跳过if
并直接传递到,这超出了我的理解。return nil;
任何建议为什么会这样?感谢所有答案。谢谢。
...因为我没有足够的代表点,所以我没有发布屏幕截图。希望我很清楚。