首页 > 代码库 > 单例的2种使用方式
单例的2种使用方式
一直都对设计模式,限于书本的理论知识,今天终于用到了众多设计模式中的一种,单例模式。
一共有2种使用方法。第一种是用它里面的函数,第二种是用它里面的变量。
上代码:
第一种,用里面的函数。
单例.h
@interface NetManager : NSObject+ (id)sharedManager;-(void)firstPrintf;-(void)secondPrintf;-(void)threeprintf;-(void)fourprintf;@end
单例.m
static NetManager *manager;@implementation NetManager#pragma mark - 获取单例+ (id)sharedManager{ if (!manager) { manager = [[NetManager alloc]init]; } return manager;}-(void)firstPrintf{ NSLog(@"first Printf!!!!");}-(void)secondPrintf{ NSLog(@"second printf!!!!!");}-(void)threeprintf{ NSLog(@"three printf!!!!!!!");}-(void)fourprintf{ NSLog(@"fourprintf!!!!!!");}
单例的使用:
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. //单例的用法,单例中的函数,可以在程序中直接使用。 [[NetManager sharedManager] firstPrintf]; [[NetManager sharedManager] secondPrintf]; [[NetManager sharedManager] threeprintf]; [[NetManager sharedManager] fourprintf];}
第二种,使用单例中的变量,这个在登陆的时候,用到的比较多。
单例.h部分
#import <Foundation/Foundation.h>@interface UserInfo : NSObject+ (id)sharedManager;@property (nonatomic , retain) NSString* username;@property (nonatomic , retain) NSString* password;@end
单例的.m部分
#import "UserInfo.h"static UserInfo * userInfo;@implementation UserInfo#pragma mark - 获取单例+ (id)sharedManager{ if (!userInfo) { userInfo = [[UserInfo alloc]init]; } return userInfo;}
单例的使用:
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. //给单例的变量赋值 [[UserInfo sharedManager] setUsername:@"李华"]; [[UserInfo sharedManager] setPassword:@"123456"]; //打印单例的值 NSLog(@"---userName----%@",[[UserInfo sharedManager] username]); NSLog(@"------password---%@",[[UserInfo sharedManager] password]); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。