版权所有,禁止匿名转载;禁止商业使用。
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这种方式的调用。