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

首頁 > 系統 > iOS > 正文

十八,iOS設計模式之單例模式

2019-11-08 00:16:11
字體:
來源:轉載
供稿:網友

 單例模式

單例模式在項目中用的比較多主要用于數據的存儲和使用;

單例設計模式有兩種寫法,第一種是不考慮線程安全的懶漢模式,第二種是考慮線程安全的“餓漢模式”,餓漢模式相對于懶漢模式來說是考慮線程安全,懶漢模式是典型的時間換空間,也就是每次獲取實例都會進行判斷,看是否需要創建實例,浪費判斷的時間。

餓漢模式:當類加載到OC運行時環境中(內存),就會調用+ (void)load一次(一個類只會加載1次)

懶漢模式:每調用一次就會加載;

iOS4之后項目中使用餓漢模式較多

項目中常用到主要有五種類型的數據 NSNumber,NSMutableDictionary,NSString,BOOL,NSInteger

#define USE_INFO [Singleton shareInstance]#import <Foundation/Foundation.h>@interface Singleton : NSObject@PRoperty (atomic, strong) NSNumber *logined;@property (atomic) NSInteger timeOut;@property (nonatomic, retain) NSMutableDictionary *userItems;@property (atomic, assign) BOOL isEle;@property (nonatomic, strong) NSString *username;//單例實例化+ (instancetype)shareInstance;@end

#import "Singleton.h"static Singleton *bankUser = nil;@implementation Singleton#pragma mark - init with singleton//餓漢模式//+ (instancetype)shareInstance//{////    static Singleton *bankUser = nil;//    static dispatch_once_t onceToken;//    //    dispatch_once(&onceToken, ^{//        bankUser = [[Singleton alloc]init];//        bankUser -> _userItems = [NSMutableDictionary dictionary];//        bankUser -> _timeOut = 0;//        bankUser -> _logined = [NSNumber numberWithBool:NO];//        bankUser -> _username = @"";//        bankUser -> _isEle = NO;////    });//    //    return bankUser;//}/*懶漢模式*/+ (instancetype)shareInstance{    @synchronized (self)    {        if (bankUser == nil)            {                bankUser = [[self alloc] init];                bankUser -> _userItems = [NSMutableDictionary dictionary];            }       }        return bankUser;}@end

調用取值如下:

  USE_INFO.username = @"ssdddf";    USE_INFO.logined = @1;    [USE_INFO.userItems setObject:@"usernumber" forKey:@"usernumber"];    USE_INFO.isEle = YES;    USE_INFO.timeOut = 1;    NSLog(@"username==%@ logined==%@userItems==%@isEle=%dtimeOut==%ld",USE_INFO.username,USE_INFO.logined,[USE_INFO.userItems objectForKey:@"usernumber"],!USE_INFO.isEle,(long)USE_INFO.timeOut);


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漾濞| 大化| 砚山县| 宁城县| 冷水江市| 自治县| 苍梧县| 吉林市| 汶川县| 抚顺县| 鹤山市| 绥阳县| 托里县| 嵊州市| 博白县| 吉水县| 上饶市| 大石桥市| 双江| 三门县| 涿鹿县| 永清县| 凤山县| 三都| 泰兴市| 墨江| 通渭县| 石楼县| 元江| 尼勒克县| 滦平县| 双柏县| 申扎县| 湖北省| 阳原县| 剑川县| 玉溪市| 娱乐| 明星| 太仆寺旗| 田林县|