iOS 单例的完整写法

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
!!! 注意点
单例不能使用继承

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容