直接贴代码
#import <Foundation/Foundation.h>
@interface DefineSingInstance : NSObject
@property (nonatomic,strong)NSMutableArray * dataList;//软件列表
@property (nonatomic,strong)NSMutableDictionary * detailDictionary;//详情字典
@property (nonatomic,strong)NSMutableArray * categoryArray;//分类数组
+(id)sharedInstace;
@end
#import "DefineSingInstance.h"
static DefineSingInstance * dsInstance=nil;
@implementation DefineSingInstance
@synthesize dataList,detailDictionary,categoryArray;
+(id)sharedInstace
{//获取单例
@synchronized(self)
{
if (dsInstance==nil)
{
dsInstance=[[DefineSingInstance alloc] init];
}
return dsInstance;
}
return nil;
}
+(id)allocWithZone:(NSZone *)zone
{//唯一一次alloc单例,之后均返回nil
@synchronized(self){
if (dsInstance==nil)
{
dsInstance=[super allocWithZone:zone] ;
return dsInstance;
}
}
return nil;
}
-(id)init
{
self=[super init];
if (self)
{
dataList=[[NSMutableArray alloc] init];
detailDictionary=[[NSMutableDictionary alloc] init];
categoryArray=[[NSMutableArray alloc] init];
}
return self;
}
- (oneway void)release
{
//release不做任何处理
}
- (id)retain
{
//retain返回单例本身
return self;
}
-(id)autorelease
{
//autorelease返回单例本身
return self;
}
-(NSUInteger)retainCount
{
//引用计数总是为1
return NSUIntegerMax;
}
-(id)copyWithZone:(NSZone *)zone
{
//copy返回单例本身
return self;
}
-(void)dealloc
{
[dataList release];
[detailDictionary release];
[categoryArray release];
[super dealloc];
}
@end