zoukankan      html  css  js  c++  java
  • 单例的实现(完整版代码)

    #import "XMGTool.h"

     

    static XMGTool * _instance;//静态变量保证了单例的唯一性,静态变量是程序一开始就存在的

     

    @interface XMGTool ()<NSCopying, NSMutableCopying>

     

    @end

     

    @implementation XMGTool

     

    +(instancetype)allocWithZone:(struct _NSZone *)zone

    {

        static dispatch_once_t onceToken;

        dispatch_once(&onceToken, ^{

            _instance = [super allocWithZone:zone];

        });

        return _instance;

    }

     

    +(instancetype)shareTool

    {

        return [[self alloc]init];

    }

     

    - (nonnull id)copyWithZone:(nullable NSZone *)zone {

        return _instance;

    }

     

    - (nonnull id)mutableCopyWithZone:(nullable NSZone *)zone {

        return _instance;

    }

     

    @end

     

     

    外界的调用:

     

      XMGTool *t1 = [[XMGTool alloc]init];

       XMGTool *t2 = [[XMGTool alloc]init];

       XMGTool *t3 = [XMGTool shareTool];

       XMGTool *t4 = [t1 mutableCopy];

        

        NSLog(@" %@-- %@-- %@--- %@",t1,t2,t3,t4);

     

    打印结果

    <XMGTool: 0x6000011b2e30>--

    <XMGTool: 0x6000011b2e30>--

    <XMGTool: 0x6000011b2e30>---

    <XMGTool: 0x6000011b2e30>

  • 相关阅读:
    Codeforces Round #634 E2. Three Blocks Palindrome (hard version)(双指针/前缀和/二分/好题)
    Codeforces Round #634 D. Anti-Sudoku(构造/水)
    自动化----docker
    自动化---zabbbix监控
    awk使用
    自动化-KVM安装
    nginx教程以及正则
    自动化-cobbler
    Python
    自动化kickstart
  • 原文地址:https://www.cnblogs.com/dashengios/p/10420541.html
Copyright © 2011-2022 走看看