美文网首页
单例的销毁

单例的销毁

作者: Jack_deng | 来源:发表于2018-01-16 15:47 被阅读0次

单例设计模式是iOS开发中一种非常常用的设计模式,大家也都很熟悉了。这里要说的是单例的销毁。由于某些需求,比如某个单例保存了用户信息,退出登录以后要清空用户信息,所以需要销毁这个单例。
代码如下:

#import <Foundation/Foundation.h>

@interface DXTest : NSObject

+ (DXTest *)sharedInstance;
+ (void)attempDealloc;

@end
#import "DXTest.h"

static dispatch_once_t once;
static id instance;

@implementation DXTest

+ (id)sharedInstance 
{
    dispatch_once(&once, ^{
        instance = [self new];
    });
    return instance;
}
- (void)dealloc
{
    NSLog(@"DXTest--释放了");
}
+ (void)attempDealloc
{
    once = 0; // 只有置成0,GCD才会认为它从未执行过.它默认为0.这样才能保证下次再次调用shareInstance的时候,再次创建对象.
    instance = nil;
}

@end

有人担心销毁后不能重新创建。但是经过本人实测,调用销毁方法后,再调用sharedInstance也是可以重新创建的。所以不用担心这个。
(单例的创建准确来说其实还要重写其他几个方法,这里重点是销毁,所以就把那几个方法省略了。)

相关文章

  • 8. 单例

    单例 1、GCD方式创建单例 2、互斥锁方式 销毁

  • iOS 单例模式 - 单例对象销毁【@synchronized】

    单例对象的创建方式 单例.h 文件的实现 单例.m 文件的实现 单例对象的销毁【@synchronized创建方式...

  • iOS 单例模式 - 单例对象销毁【GCD】

    单例对象的创建方式 单例.h 文件的实现 单例的.m 文件的实现 单例对象的销毁【GCD创建的方式】 使用单例对象...

  • 单例的销毁

    单例设计模式是iOS开发中一种非常常用的设计模式,大家也都很熟悉了。这里要说的是单例的销毁。由于某些需求,比如某个...

  • iOS 单例的创建、销毁、继承(最全单例内容)

    目录 一、常见的单例及可能存在的问题 二、完善的单例 三、可继承的单例 四、单例的销毁 前言 你是不是觉得这是一个...

  • Android - 常见内存泄漏

    单例 单例静态对象持有activity引用,且因静态对象生命周期比activity还长,当act被销毁时,单例中的...

  • 0x003 单例模式 -- Singleton Pattern

    单例模式 -- Singleton Pattern 为了避免一个全局使用的类重复的销毁和创建 一、 最简单的单例:...

  • 单例设计模式

    单例模式优点 单例模式在内存中只有一个实例,减少了内存开支。特别是一个对象需要频繁的创建、销毁时,而创建与销毁的性...

  • iOS单例的创建与销毁

    c#iOS单例的创建与销毁 单例:单例模式使一个类只有一个实例.单例是在使用过程,保证全局有唯一的一个实例.这样,...

  • 单例创建与销毁

    平时创建 单例对象 用的苹果官网提倡的写法: but 假设有时候我们一个用户信息类,一般是个 单例对象,但当用户退...

网友评论

      本文标题:单例的销毁

      本文链接:https://www.haomeiwen.com/subject/inwsoxtx.html