#import "ApiService.h"
@implementation ApiService
static ApiService *sharedInstance = nil;
+ (ApiService *)sharedInstance
{
if (sharedInstance == nil)
{
sharedInstance = [[self alloc]init];
}
return sharedInstance;
}
- (id)init
{
if (self = [super init])
{
}
return self;
}
@end
当我打电话给+sharedInstance
自我指的是什么?如何允许我从Class方法调用init?
答案 0 :(得分:2)
self
是班级。
+ (id)create {
return [[self alloc] init];
}
与:
相同+ (id)create {
return [[SomeClass alloc] init];
}
或者在你的例子中:
+ (ApiService *)sharedInstance
{
if (sharedInstance == nil)
{
sharedInstance = [[ApiService alloc]init];
}
return sharedInstance;
}
这允许您从类方法调用self
上的类方法。并且它允许您在继承时在子类上调用它们,因为类方法也是继承的。