黑马程序员技术交流社区
标题:
OC单例设计模式,有大神帮我进来看下!
[打印本页]
作者:
萌萌小喵喵
时间:
2015-5-4 23:23
标题:
OC单例设计模式,有大神帮我进来看下!
一个Person类,要保证无论什么情况下创建Person对象返回的都是同一个对象。用单例设计模式怎么写出来?
作者:
ydy96315
时间:
2015-5-5 07:07
什么是单例设计模式。。。。
作者:
greatboygirl
时间:
2015-5-5 12:26
单利模式?
作者:
不给中我就送
时间:
2015-5-5 13:15
Person.h
#import<foundation/Foundation.h>
@interfacePerson : NSObject {
NSString *someProperty;
}
@property(nonatomic, retain) NSString *someProperty;
+(id)Person;
@end
复制代码
Person.m
#import"Person.h"
@implementationPerson
@synthesizesomeProperty;
#pragmamark Singleton Methods
+(id)Person{
static Personr *Person= nil;
static dispatch_once_tonceToken;
dispatch_once(&onceToken, ^{
Person= [[self alloc] init];
});
return Person;
}
-(id)init {
if (self = [super init]) {
someProperty =[[NSString alloc] initWithString:@"Default Property Value"];
}
return self;
}
@end
复制代码
通过创建一个静态的Person对象,使用GCD的
dispatch_once确保只会创建一次实例,并且保证线程安全。单例模式最容易忽视的就是多线程
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2