iOS 单例

OC

#import "SPManager.h"

@implementation SPManager

static SPManager *instance = nil;

+ (instancetype)shared {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[[self class] alloc] init];
    });
    return instance;
}

+ (instancetype)allocWithZone:(struct _NSZone *)zone {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [super allocWithZone:zone];
    });
    return instance;
}

- (id)copyWithZone:(struct _NSZone *)zone {
    return instance;
}

@end

Swift

class SPManager {
    
    static let shared = SPManager()
    
    private init() { }
}

推荐阅读更多精彩内容

  • 一、OC 中创建单例的几种方式 1.1 单线程模式单例 存在的问题就是: 只能在单线程中使用, 一旦有多线程同时调...
    下班不写程序阅读 153评论 0 2
  • 1、为什么用单例模式? OC编程习惯(Java编程习惯、Swift编程习惯) xcode 4.2之前是MRC(手动...
    多情刀客无情刀阅读 347评论 0 1
  • 单例模版 OC 以上代码有以下几点一一展开说: 在XQSingleton的@interface中声明shareIn...
    seasonZhu阅读 433评论 0 5
  • iOS 项目中 不可缺少的部分: 单例 OC版本 : 当一个对象无论被分配多少次内存时,都只会是一个内存地址 Sw...
    LuKane阅读 80评论 0 0
  • Swift创建单例 代码如下:Swift5 对应OC创建单例
    跃文阅读 494评论 0 2