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>

  • 相关阅读:
    thinkphp计划任务使用cronRun-Thinkphp3.1版
    AJAX 跨域请求
    可以做外汇交易接口的网站
    thinkphp 定时执行php文件 php自动执行php文件
    关于major、minor的解释
    Codeforces Round #370 (Div. 2) A B C 水 模拟 贪心
    2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873
    Codeforces Round #280 (Div. 2) A B C 暴力 水 贪心
    codevs 1299 线段树 区间更新查询
    Codeforces Round #260 (Div. 2) A B C 水 找规律(大数对小数取模) dp
  • 原文地址:https://www.cnblogs.com/dashengios/p/10420541.html
Copyright © 2011-2022 走看看