#import <Foundation/Foundation.h> @interface VnoteUtil : NSObject + (VnoteUtil *)instance; @end
#import "VnoteUtil.h" static VnoteUtil *instance = nil; @implementation VnoteUtil // 实现功能的方法在此添加,下面的方法无须修改... /************************ 以下为实现单件实例线程安全的方法 ***********************/ + (VnoteUtil *)instance { @synchronized(self) { if (!instance) instance = [[super allocWithZone:NULL] init]; } return instance; } + (id)allocWithZone:(NSZone *)zone { return [self instance]; } - (id)copyWithZone:(NSZone *)zone { return self; } - (id)init { if (instance) { return instance; } self = [super init]; return self; } - (id)retain { return self; } - (oneway void)release { // Do nothing } - (id)autorelease { return self; } - (NSUInteger)retainCount { return NSUIntegerMax; } @end
参考资料:
http://cocoa.venj.me/blog/singleton-in-objc/
http://leyteris.iteye.com/blog/1669198
http://www.cocoachina.com/bbs/simple/?t33050.html