IOS中的单例

版权所有,禁止匿名转载;禁止商业使用。

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这种方式的调用。


0 0