美文网首页
iOS 单例模式

iOS 单例模式

作者: 小小Q吖 | 来源:发表于2016-07-05 10:23 被阅读221次

    iOS 单例模式(Singleton)

    • 故名思议 ,单例, 即是在整个项目中,这个类的对象只能被初始化一次。
    • 直接上代码 - - ARC中单例模式的实现

    .h文件

    #import <Foundation/Foundation.h>
    @interface MySingle : NSObject
    +(instancetype)sharedFoot;
    @end
    

    .m文件

    步骤:
    1.一个静态变量 _inastance
    2.重写allocWithZone,在里面用dispatch_once,并调用super allcoWithZone
    3.自定义一个sharedXX , 用来获取大力,在里面也可调用 dispatch_once ,直接返回 _instance即可
    
    #import "MySingle.h"
    @implementation MyDingle
    static MySingle *_instance;//第一步 储存唯一的实例
    
    第二歩 分配内存都会调用这个方法, 保证分贝内存alloc时都相同
    调用dispatch_once 保证在多线程中也被实例化一次
    
    +(id )allocWIthZone:(struct _NSZone *)zone{
        static dispatch_once_t onceToken;
              dispatch_once(&onceToken ,^{
            _instance = [super allocWithZone:zone];
          ?);
    
    第三歩:保证init初始化时都相同
    
    +(instancetype)sharedFoot{
      static dispatch_once_t onceToken;
              dispatch_once(&onceToken ,^{
                  _instance = [[MySingle alloc]init];
                });
              return _instance;
    }
    
    第四步: 保证copy 时都相同
    
    -(id)copyWirhZone:(NSZone *)zone{
        return _instance;
    }
    

    在需要的地方调用 这样单例就创建完成
    MySingle *one = [[MySingle alloc]init];

    转自 http://www.jianshu.com/users/b9479de9c9bb/latest_articles

    相关文章

      网友评论

          本文标题:iOS 单例模式

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