单例的封装创建与使用

来源:互联网 发布:java删除指定文件 编辑:程序博客网 时间:2024/06/07 19:51
/** *  使用该文件,就可以实现单例模式。 */// .h文件#define FJXSingletonH(name) + (instancetype)shared##name;// .m文件#define FJXSingletonM(name) \static id _instance = nil; \+ (id)allocWithZone:(struct _NSZone *)zone \{ \static dispatch_once_t onceToken; \dispatch_once(&onceToken, ^{ \_instance = [super allocWithZone:zone]; \}); \return _instance; \} \+ (instancetype)shared##name \{ \static dispatch_once_t onceToken; \dispatch_once(&onceToken, ^{ \_instance = [[self alloc] init]; \}); \return _instance; \} \- (id)copyWithZone:(NSZone *)zone \{ \return _instance; \}
</pre><pre name="code" class="objc"><pre name="code" class="objc">
/*以上的方法是创建与封装的单例*/
/*接下来就是单例的使用了,首先在.h文件里面要这样定义*/////  SceneTools.h//  ShowMe_iOS////  Created by ShowMe_FanJinxin on 15/12/23.//  Copyright © 2015年 ShowMe. All rights reserved.//#import <Foundation/Foundation.h>#import "FJXSingleton.h"@interface SceneTools : NSObjectFJXSingletonH(Scene)@property (nonatomic,copy) NSString *sceneId;@property (nonatomic,copy) NSString *sceneName;@end


</pre><pre name="code" class="objc">
/*然后要这样取到单例*/
 [SceneTools sharedScene].sceneId


                                             
0 0
原创粉丝点击