单例模式...(ARC方式)
2016-01-01 21:35
232 查看
main.m
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
Person * person1 = [Person sharedManager];
Person * person2 = [Person sharedManager];
NSLog(@"%p", person1);
NSLog(@"%p", person2);
return 0;
}
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, copy) NSString * name;
+ (Person *)sharedManager;
@end
Person.m
#import "Person.h"
@implementation Person
//这句不能掉
static Person * person = nil;
+ (Person *)sharedManager
{
//单例需要使用dispatch_once_t线程
//这和dispatch_once配合使用能保证该第二个参数代码块中的代码只被执行一次
//如果被执行过不执行直接返回静态变量person,未执行过静态变量person=nil自然需要开辟空间并初始化
static dispatch_once_t once;
dispatch_once(&once, ^{
person = [[self alloc] init];
});
return person;
}
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
Person * person1 = [Person sharedManager];
Person * person2 = [Person sharedManager];
NSLog(@"%p", person1);
NSLog(@"%p", person2);
return 0;
}
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, copy) NSString * name;
+ (Person *)sharedManager;
@end
Person.m
#import "Person.h"
@implementation Person
//这句不能掉
static Person * person = nil;
+ (Person *)sharedManager
{
//单例需要使用dispatch_once_t线程
//这和dispatch_once配合使用能保证该第二个参数代码块中的代码只被执行一次
//如果被执行过不执行直接返回静态变量person,未执行过静态变量person=nil自然需要开辟空间并初始化
static dispatch_once_t once;
dispatch_once(&once, ^{
person = [[self alloc] init];
});
return person;
}
@end
相关文章推荐
- CentOS更改yum源与更新系统
- POJ 1852 Ants (贪心)
- C#中异步及winform中界面假死
- OSS设置CORS规则以后还是报No 'Access-Control-Allow-Origin'解决方法
- win32api pywin32 安装后出现 ImportError: DLL load failed
- 搭建MiniGUI开发环境
- CentOS-7-x86_64-DVD-1503-01安装盘中Package包中的 软件
- 25到35的十年该怎么过(转载)
- HDU 2136 Largest prime factor(数论)
- Java事件处理
- 增加辅助的数据库组件
- 增加辅助的数据库组件
- 增加辅助的数据库组件
- Tiny HTTPd 开源web服务器搭建过程
- POJ 3468 A Simple Problem with Integers(线段树|区间加减&&区间求和)
- POJ1192 最优连通子集(树形DP)
- 面向对象的相关问题
- C# 实现多线程的同步方法详解
- Android 中如何计算 App 的启动时间?
- Android开发-百度地图(一)——准备