• iOS开发学习笔记(OC语言)——线程安全的单例


    SingleClass.h

    //
    //  SingleClass.h
    //  First
    //
    //  Created by xxx on 2022/2/9.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface SingleClass : NSObject
    
    +(instancetype) sharedInstance;
    
    @end
    
    

    SingleClass.m

    //
    //  SingleClass.m
    //  First
    //
    //  Created by xxx on 2022/2/9.
    //
    
    #import "SingleClass.h"
    
    @implementation SingleClass
    
    + (instancetype)sharedInstance {
        static SingleClass * ins = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            ins = [[super allocWithZone:nil] init];
        });
        
        return ins;
    }
    
    +(id)allocWithZone:(NSZone *)zone {
        return [self sharedInstance];
    }
    
    -(id)copyWithZone:(NSZone *) zone {
        return [[self class] sharedInstance];
    }
    
    -(id)mutableCopyWithZone:(NSZone *) zone {
        return [[self class] sharedInstance];
    }
    
    @end
    
    

    测试

    #import "SingleClass.h"
    
    
    
    SingleClass *ins1 = [SingleClass sharedInstance];
    NSLog(@"SingleClass obj1 = %@.", ins1);
        
    SingleClass *ins2 = [[SingleClass alloc] init];
    NSLog(@"SingleClass obj2 = %@.", ins2);
        
    SingleClass *ins3 = [SingleClass new];
    NSLog(@"SingleClass obj3 = %@.", ins3);
        
    if (ins1 == ins2 && ins1 == ins3) {
        NSLog(@"SingleClass test success");
    } else {
        NSLog(@"SingleClass test failed");
    }
    
  • 相关阅读:
    线程安全(1)--demo1
    java--构造器与static
    I/O---读取txt文件----demo
    阳光餐厅--oracle---建表---danrong
    定位程序问题出现的原因工具-jstack
    守护线程
    线程的交互:互斥与同步
    正确的停止java中的线程
    使用GSON来生成JSON数据
    使用JSONObject类来生成json格式的数据
  • 原文地址:https://www.cnblogs.com/lurenjiashuo/p/15892214.html
Copyright © 2020-2023  润新知