.h 文件代码
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface ManagerViewController : UIViewController
/** 单利创建 - Method
*/
+ (instancetype)sharedManager;
/** 单利销毁 - Method
*/
- (void)removeSharedManager;
@end
NS_ASSUME_NONNULL_END
.m 文件代码
#import "ManagerViewController.h"
@interface ManagerViewController ()
@end
static dispatch_once_t onceToken;
static ManagerViewController *_manger = nil;
@implementation ManagerViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"vc_manager";
}
#pragma mark- 单利
/** 单利创建
*/
+ (instancetype)sharedManager
{
dispatch_once(&onceToken, ^{
_manger = [[ManagerViewController alloc] init];
});
return _manger;
}
/** 单利销毁
*/
- (void)removeSharedManager
{
/**只有置成0,GCD才会认为它从未执行过。它默认为0。
这样才能保证下次再次调用sharedManager的时候,再次创建对象。*/
onceToken= 0;
_manger=nil;
}
@end
网友评论