标签:ios objective-c 设计模式 单例
提要:单例设计模式需要重写父类的方法。因为全局实例不允许释放,所以和内存管理相关的retain,release,autorelease方法均需要重写,重写的目的就是避免对这个实例的内存方面进行操作,防止引用计数发生变化。
单例模式具体实例代码如下:
SingletonTeather.h文件
#import <Foundation/Foundation.h>
@interface SingletonTeather : NSObject
@property (nonatomic,strong) NSString *name;
//@property (nonatomic,assign) NSInteger age;
@property (nonatomic,strong) NSMutableDictionary *info;
+(SingletonTeather *)getSingletonTeather;
@end
SingletonTeather.c文件
#import "SingletonTeather.h"
staticSingletonTeather *shareSingletonTeather = nil;
@implementation SingletonTeather
@synthesize name,info;
+(SingletonTeather *)getSingletonTeather
{
if (shareSingletonTeather == nil) {
shareSingletonTeather = [[SingletonTeatheralloc]init];
}
return shareSingletonTeather;
}
+(id)allocWithZone:(struct_NSZone *)zone
{
if (shareSingletonTeather == nil) {
shareSingletonTeather = [[superallocWithZone:zone]init];
}
return shareSingletonTeather;
}
-(id)copyWithZone:(struct_NSZone *)zone
{
return self;
}
-(NSUInteger)retainCount
{
return NSIntegerMax;
}
-(id)retain
{
return self;
}
-(onewayvoid)release
{
}
-(id)autorelease
{
return self;
}
@end
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:ios objective-c 设计模式 单例
原文地址:http://blog.csdn.net/iot_li/article/details/47340551