我正在创建一个框架,我想将私有方法添加到类别内的超类中,这样它们就不会被公开。
例如,假设我有一个公共类定义为:
@interface Animal : NSObject
- (void)makeNoise;
@end
还有一个公共子类,例如:
@interface Dog : Animal
- (void)makeNoise;
@end
现在我想添加与所有对象相关的私有方法,Animal
因此我创建了一个类别,例如:
@interface Animal(PrivateMethods)
- (void)privateSing;
@end
问题来了。是不是不能从子类访问超类PrivateMethods
类别?
如果我运行以下代码,则会出现unrecognized selector sent to instace
错误:
#import "Animal+PrivateMethods.h"
@implementation Dog
- (void)description {
// unrecognized selector sent to instace
[self privateSing];
}
@end