なぜコードがこれほど奇妙な振る舞いをするのかを理解する助けを求めています。私が持っているもの:BaseClass : NSManagedObject
そしてChildClass : BaseClass
BaseClass にはカテゴリがあります。.h:
@interface BaseClass (Category)
+ (NSArray)method;
@end
.m:
@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;
それがなぜなのか、何か提案はありますか?すべての回答をお待ちしております。ありがとう。
... 十分な担当者ポイントがないため、スクリーンショットを投稿していません。私が明確だったことを願っています。