iOS单例销毁
来源:互联网 发布:vb中case是什么意思 编辑:程序博客网 时间:2024/05/16 12:44
1 单例的实现见之前写过的一篇文章 iOS单例的快速实现
static InstanceClass *instance; + (InstanceClass *)defaultInstance{ @synchronized (self){ if (instance == nil) { instance = [[InstanceClass alloc] init]; } } return instance;}
2 单例的概念复习下
单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
3 销毁单例
今天遇到个需求,需要在切换用户时切换数据库文件,而我是通过单例来获取的,所以我就想能不能在切换用户的时候销毁当前单例,在登录新用户之后就会重新初始化单例。见代码:
static LKDBHelper* db;<pre name="code" class="objc">+(LKDBHelper *)getUsingLKDBHelper{ @synchronized(self) { if(db == nil) { NSString*dbpath = [GMFileHelper getUserDbPath]; //用户切换用户时候取不同的db路径 如微信多用户数据库 LiChen.db FanBingbing.db db = [[LKDBHelper alloc]initWithDBPath:dbpath]; } } return db;}
<pre name="code" class="objc">//退出登录时 销毁单例 当登录新用户时,单例就会重新初始化+ (void)attemptDealloc{ db = nil;}
实践起来是可行的,只要有退出登录操作,就销毁单例,保证登录另一个用户时,单例重新初始化。从某些意义来说,已经不像单例了。浅显的认知,有错误欢迎指出。谢谢。
0 0
- iOS单例销毁
- iOS单例的创建与销毁
- 自动销毁单例指针
- 单例模式及销毁
- 一:类的创建和销毁__singleton单例模式
- iOS设备相机销毁
- c++ 单例模式下的实例自动销毁(单例自动回收器)
- c++ 单例模式下的实例自动销毁(单例自动回收器)
- iOS单例模式
- iOS 单例模式
- IOS 单例模式
- iOS单例
- iOS 单例模式
- IOS 单例
- IOS 单例
- IOS单例模式
- ios单例模式
- iOS单例
- BaseActivity框架搭建
- 2012年5月SAT香港真题解析
- HDU 2026 首字母变大写
- 最大流之预流推进
- 使用OpenMP并行处理图像产生冲突的问题
- iOS单例销毁
- DM8168 DVRRDK软件框架研究
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
- web前端 c标签的使用之<c:forEach>和<c:if test="">
- Android 抽屉效果的导航菜单实现
- 回调函数
- Shi-Tomasi算子的运用 ,用于检测角点
- css 实现 table斜线表头
- (ContentProvider)Uri详解之——Uri结构与代码提取