美文网首页
iOS 单例的完整写法

iOS 单例的完整写法

作者: _MoveForward | 来源:发表于2017-08-21 11:02 被阅读81次

    import <Foundation/Foundation.h>

    @interface MFShareTool : NSObject<NSCopying,NSMutableCopying>

    +(instancetype)shareTool;

    @end

    import "MFShareTool.h"

    @implementation MFShareTool

    static MFShareTool * _shareTool;
    +(instancetype)allocWithZone:(struct _NSZone *)zone{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    _shareTool = [super allocWithZone:zone];
    });

    return _shareTool;
    

    }

    +(instancetype)shareTool{
    return [[self alloc]init];
    }

    -(id)copyWithZone:(NSZone *)zone{
    return _shareTool;
    }
    -(id)mutableCopyWithZone:(NSZone *)zone{
    return _shareTool;
    }
    // 判断环境是否为ARC

    if __has_feature(objc_arc)

    else

    -(oneway void)release {

    }
    -(instancetype)retain{
    return _shareTool;
    }
    -(NSUInteger)retainCount{
    return MAXFLOAT;
    }

    endif

    @end
    !!! 注意点
    单例不能使用继承

    相关文章

      网友评论

          本文标题:iOS 单例的完整写法

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