iOS-关于单例类的使用,以及使用单例进行传值
2015-09-22 11:28
471 查看
单例模式顾名思义就是只有一个实例,它确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。它经常用来做应用程序级别的共享资源控制。这个模式使用频率非常高,通过一个单例类,可以实现不同view之间的参数传递
首先创建一个单例类 继承自 NSObject
在.h文件中
#import <Foundation/Foundation.h>
@interface CaseDescription :
NSObject
@property (strong,nonatomic)
NSString *singleCase;
//实现单例方法
+ (CaseDescription *) GetInstance;
@end
然后在.m中
#import "CaseDescription.h"
@implementation CaseDescription
// 单例对象
static
CaseDescription *instance;
// 单例
+ (CaseDescription *) GetInstance {
@synchronized(self) {
if (instance ==
nil) {
instance = [[self
alloc] init];
}
}
return
instance;
}
-(id) init
{
if (self = [super
init]) {
self.singleCase = [[NSString
alloc] init];
}
return
self;
}
@end
因为我要传值 从A.m 传到 B.m
当然, A和B 都要声明这个单例类
那我在A.m这样写:
CaseDescription *session
4000
= [CaseDescription
GetInstance];
session.singleCase = @"这里是A.m中的一个值,也就是你要传的";
然后再B.m中这样调用就行了:
CaseDescription *session = [CaseDescription
GetInstance];
NSString *value = session.singleCase;
NSLog(@"%@",value);
首先创建一个单例类 继承自 NSObject
在.h文件中
#import <Foundation/Foundation.h>
@interface CaseDescription :
NSObject
@property (strong,nonatomic)
NSString *singleCase;
//实现单例方法
+ (CaseDescription *) GetInstance;
@end
然后在.m中
#import "CaseDescription.h"
@implementation CaseDescription
// 单例对象
static
CaseDescription *instance;
// 单例
+ (CaseDescription *) GetInstance {
@synchronized(self) {
if (instance ==
nil) {
instance = [[self
alloc] init];
}
}
return
instance;
}
-(id) init
{
if (self = [super
init]) {
self.singleCase = [[NSString
alloc] init];
}
return
self;
}
@end
因为我要传值 从A.m 传到 B.m
当然, A和B 都要声明这个单例类
那我在A.m这样写:
CaseDescription *session
4000
= [CaseDescription
GetInstance];
session.singleCase = @"这里是A.m中的一个值,也就是你要传的";
然后再B.m中这样调用就行了:
CaseDescription *session = [CaseDescription
GetInstance];
NSString *value = session.singleCase;
NSLog(@"%@",value);
相关文章推荐
- Python动态类型的学习---引用的理解
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 设计模式之创建型模式 - 特别的变量问题
- 我是运营,我没有假期
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 土人系列AS入门教程 -- 对象篇
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 交换机升级排障实例
- C#托管堆对象实例包含内容分析
- 修复mysql数据库
- javascript asp教程第十一课--Application 对象
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解