您的位置:首页 > 移动开发 > Objective-C

Objective-C更适合的单例实现(iOS设计模式)

2012-10-25 13:42 363 查看
创建单例的步骤:

声明一个单例对象的静态实例,并初始化为nil。

在该类的类工厂方法(名称类似于“sharedInstance”或“sharedManager”)中生成该类的一个实例,但仅当静态实例为nil的时候。

重载allocWithZone:方法,确保当用户试图直接(而不是通过类工厂方法)分配或初始化类的实例时,不会分配出另一个对象。

实现基本协议方法:copyWithZone:、release、retain、retainCount、和autorelease,以保证单例的状态。

实现单例的代码例子:(iOS设计模式 page83)

#import "Singleton.h"

@implementation Singleton

static Singleton *sharedSingleton = nil;

+ (Singleton *)sharedInstance
{
if (sharedSingleton == nil)
{
sharedSingleton = [[super allocWithZone:NULL] init];
}
return sharedSingleton;
}

+ (id)allocWithZone:(NSZone *)zone
{
return [[self sharedInstance] retain];
}

- (id)copyWithZone:(NSZone *)zone
{
return self;
}

- (id) retain
{
return self;
}

- (NSUInteger) retainCount
{
return NSUIntegerMax;
}

- (void)release
{

}

- (id) autorelease
{
return self;
}
@end


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: