国产探花免费观看_亚洲丰满少妇自慰呻吟_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);


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦江县| 昆明市| 克山县| 哈巴河县| 宝鸡市| 大理市| 佛教| 阿瓦提县| 顺昌县| 武汉市| 民勤县| 隆安县| 樟树市| 进贤县| 英吉沙县| 苏州市| 全南县| 阿坝县| 遂昌县| 怀安县| 那曲县| 崇左市| 黄骅市| 新密市| 米脂县| 鹤山市| 建平县| 郯城县| 武清区| 喀喇沁旗| 涪陵区| 哈密市| 张家川| 前郭尔| 腾冲县| 儋州市| 宁武县| 合川市| 合川市| 图片| 怀远县|