zoukankan      html  css  js  c++  java
  • 单例ios

    /单例(只有一个对象,且对像的生命周期和程序生命周期一致)

    static DataManager *manager = nil;//定义静态指针变量  存储对象地址.

    +(DataManager *)sharedManager{

        //保证多线程访问的安全

        @synchronized(self) {

            if (!manager) {

                manager = [[DataManager alloc]init];//单例对象只开辟

                [manager readDataFromPlist];

            }

        }

        return manager;

    }

    //用队列方法.

    +(NetWorkHelper *)defaultHelper{

          static NetWorkHelper *netHelper = nil;

        static dispatch_once_t onceToken;

        dispatch_once(&onceToken, ^{

            netHelper = [[NetWorkHelper alloc]init];

        });

        return netHelper;

    }

    //MRC下要重写release, autorelease,retain, 方法,防止创建的单例被释放,不能再次创建.

    三个方法内部什么都不要执行.  重写retainCount 方法,返回1.

    看附件有定义好的宏文件,直接调用.

    兼容arc,和MRC的单例宏文件.

     

    多了条件编译:

    #if __has_feature(objc_arc) // 系统判断是否是ARC

  • 相关阅读:
    shell脚本100例、练习使用
    shell基础编程
    mysql基础理论知识
    Docker 基础
    python基础之类(面向对象编程)
    python基础之函数
    python基础之认知及编码
    python基础之数据类型
    python基础之注意事项
    1.linux使用基础
  • 原文地址:https://www.cnblogs.com/wukun168/p/6010826.html
Copyright © 2011-2022 走看看