国产探花免费观看_亚洲丰满少妇自慰呻吟_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. 建議包裝成宏使用


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双峰县| 松原市| 岑巩县| 东乡县| 宣化县| 大方县| 同心县| 余干县| 含山县| 深泽县| 积石山| 丹凤县| 上林县| 苍南县| 嵩明县| 信丰县| 句容市| 石河子市| 城固县| 新乐市| 霍山县| 石嘴山市| 沭阳县| 屏山县| 聊城市| 昌图县| 土默特左旗| 新干县| 左云县| 丹阳市| 盐边县| 荔波县| 新兴县| 石门县| 登封市| 斗六市| 芜湖县| 玉溪市| 印江| 彰武县| 太仆寺旗|