码迷,mamicode.com
首页 > 移动开发 > 详细

IOS-3-Objective-C语言:单例设计模式

时间:2015-08-07 20:17:29      阅读:112      评论:0      收藏:0      [点我收藏+]

标签: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-3-Objective-C语言:单例设计模式

标签:ios   objective-c   设计模式   单例   

原文地址:http://blog.csdn.net/iot_li/article/details/47340551

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!