码迷,mamicode.com
首页 > 移动开发 > 详细

蓝懿 iOS iOS单例销毁

时间:2015-12-26 01:16:01      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

1 单例的实现见之前写过的一篇文章 iOS单例的快速实现

 

 

static InstanceClass *instance;                                                                                                 + (InstanceClass *)defaultInstance{
    @synchronized (self){
        if (instance == nil) {
            instance = [[InstanceClass alloc] init];
        }
    }
    
    return instance;}

 

 

2 单例的概念复习下

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

 

3 销毁单例

今天遇到个需求,需要在切换用户时切换数据库文件,而我是通过单例来获取的,所以我就想能不能在切换用户的时候销毁当前单例,在登录新用户之后就会重新初始化单例。见代码:

 

static LKDBHelper* db;
+(LKDBHelper *)getUsingLKDBHelper{ @synchronized(self) { if(db == nil) { NSString*dbpath = [GMFileHelper getUserDbPath]; //用户切换用户时候取不同的db路径 如微信多用户数据库 LiChen.db FanBingbing.db db = [[LKDBHelper alloc]initWithDBPath:dbpath]; } } return db; }

//退出登录时 销毁单例 当登录新用户时,单例就会重新初始化 + (void)attemptDealloc { db = nil; } 

 

 



 

实践起来是可行的,只要有退出登录操作,就销毁单例,保证登录另一个用户时,单例重新初始化。从某些意义来说,已经不像单例了。浅显的认知,有错误欢迎指出。谢谢。

 

蓝懿 iOS iOS单例销毁

标签:

原文地址:http://www.cnblogs.com/hahahahahaha/p/5077343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!