国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

重溫-單例模式

2019-11-14 18:20:20
字體:
來源:轉載
供稿:網友

1. 單例設計模式(Singleton)

* 保證某個類創建出來的對象永遠只有一個

2. 作用

* 節省內存開銷。

* 如果有些數據,整個程序中都用得上,只需要使用同一份資源(保證大家訪問的數據是相同一致的)

*  一般來說工具類設計為單例模式合適

3. 實現

* MRC

* ARC

SoundTool.h

1 #import <Foundation/Foundation.h>2 3 @interface SoundTool : NSObject <NSCopying>4 5 + (instancetype)shareSoundTool;6 7 @end
View Code

SoundTool.m

#import "SoundTool.h"@implementation SoundToolstatic id _instance = nil;+ (instancetype)allocWithZone:(struct _NSZone *)zone{    if (_instance == nil) {        static dispatch_once_t onceToken;        dispatch_once(&onceToken, ^{            _instance = [super allocWithZone:zone];        });    }    return _instance;}+ (instancetype)shareSoundTool{    return [[self alloc] init];}- (instancetype)init{    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        _instance = [super init];    });    return _instance;}+ (instancetype)copyWithZone:(struct _NSZone *)zone{    return _instance;}+ (instancetype)mutableCopyWithZone:(struct _NSZone *)zone{    return _instance;}//以下三個為非ARC使用- (oneway void)release{}- (instancetype)retain{    return _instance;}- (NSUInteger)retainCount{    return 1;}
View Code

4. 建議包裝成宏使用


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴安盟| 新乡市| 山阳县| 丹巴县| 勐海县| 宕昌县| 涿鹿县| 京山县| 怀安县| 沂南县| 苍梧县| 陇川县| 金秀| 同江市| 开鲁县| 武安市| 专栏| 巴塘县| 新沂市| 建始县| 射阳县| 长沙县| 手机| 襄城县| 泗洪县| 泽普县| 进贤县| 灵璧县| 新营市| 东辽县| 西充县| 禹州市| 兴国县| 孟津县| 辽中县| 临海市| 麦盖提县| 江西省| 嘉善县| 安多县| 石嘴山市|