在QQ群里偶尔有人问起怎么实现一个类,不能直接实例化,只能使用他的子类【其实就是抽象基类的意思】,这里分享一下我的做法。很简单,直接上代码。
#import "BaseAPIManager.h"
@implementation BaseAPIManager
+ (instancetype)alloc {
if ([NSStringFromClass([self class]) isEqualToString: NSStringFromClass([BaseAPIManager class])]) {
NSAssert(NO, @"{%@} 这个类是抽象基类,请使用他的子类", NSStringFromClass([BaseAPIManager class]));
return nil;
}
return [super alloc];
}
@end