ios中的单例无处不在,在设计单例的时候需要考虑其他入口拦截等。
在这里把实现的代码记录一下:
头文件:
#import
@interface MTiMerLogin : NSObject
+(MTiMerLogin *)sharedInstance;
-(MTiMerLogin *)sharedInstance;
@end
实现文件:
#import "MTiMerLogin.h"
@implementation MTiMerLogin
+(MTiMerLogin *)sharedInstance
{
static MTiMerLogin *singleton;
static dispatch_once_t singletoken;
dispatch_once(&singletoken,^{
singleton = [[self alloc] initSingle];
});
return singleton;
}
-(MTiMerLogin *)sharedInstance
{
return [MTiMerLogin sharedInstance];
}
-(instancetype) initSingle
{
self = [super init];
return self;
}
-(instancetype) init
{
return [MTiMerLogin sharedInstance];
}
@end
需要注意的是,需要重写init来防止对alloc init这种方式的调用。