Singleton(单例模式),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。
代码如下:
static ClassA *classA = nil;//静态的该类的实例
+ (ClassA *)sharedManager
{
@synchronized(self) {
if (!classA) {
classA = [[super allocWithZone:NULL]init];
}
return classA;
}
}
+ (id)allocWithZone:(NSZone *)zone {
return [[self sharedManager] retain];
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
- (id)retain {
return self;
}
- (NSUIntger)retainCount {
return NSUIntgerMax;
}
- (oneway void)release {
}
- (id)autorelease {
return self;
}
-(void)dealloc{
}
王珂
//将first做成单例
static FirstViewController *ft=nil;
+ (FirstViewController *)singleton
{
@synchronized(self){//线程安全
if (!ft){
ft=[[super allocWithZone:NULL]init];
}
}
return ft;
}
+ (id)allocWithZone:(NSZone *)zone//重新写alloc是从写的父类的alloc
{
return [[self singleton]retain]; //返回单例 这里self在+方法中就是类型不是对象
}
- (id)copyWithZone:(NSZone *)zone//重新copy
{
return self;
}
- (id)retain
{
return self;
}
- (id)autorelease
{
return self;
}
- (oneway void)release
{
//不做处理
}
- (void)dealloc
{
//不作处理
}
- (NSUInteger)retainCount
{
return NSUIntegerMax;
}
分享到:
相关推荐
ios9 单例模式区分arc与非arc宏的使用,ios9 模式下能运行!
避免了自定义一个单例,在java中还可以保存对象的状态。希望能帮到大家,
ios 单例学习demo !
IOS 单例设计模式实例Demo 单例 设计 模式 IOS Singleton
一个大牛写的控制重复播放的单例类,使用的时候直接包含使用单例的方法就可以解决 多视图叠加播放的问题
简单的单例view工具类。
一个单例的demo
此单例模式可以确保创建的对象指针指向同一个内存地址!
ios 单例demoios
ios单例模式的详细解释、两种方式实现单例模式,重写需要实现的方法
由于在项目中单例模式户经常用到,所以可以将其写成宏放头文件里,这样就可以两行代码搞定单例
ios 单例学习调试的demo
iOS单例传值。。。从第一个view输入你的数据。。在第二个view上显示你的数据
iOS 单例模式
单利实现tabbar管理的两个控制器之间的跳转
详解IOS 单例的两种方式 方法一: #pragma mark - #pragma mark sharedSingleton methods //单例函数 static RtDataModel *sharedSingletonManager = nil; + (RtDataModel *)sharedManager { @synchronized(self...
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在...
iOS的单例模式有两种官方写法,如下: (1)不使用GCD #import ServiceManager.h static ServiceManager *defaultManager; @implementation ServiceManager +(ServiceManager *)defaultManager{ if(!...
抽取的单例宏更加方便的实现单例之类的,其实比较简单,只是做了抽取
自己写的关于单例学习的理解,简单易用,希望能帮到大家