作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在一个项目中工作,我想使用单例模式模型。
我想要这个休假单例模式的任何数据模型。
我研究了有关此的苹果文档
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW6
和
http://www.oodesign.com/singleton-pattern.html
http://www.daveoncode.com/2011/12/19/fundamental-ios-design-patterns-sharedinstance-singleton-objective-c/
现在我知道我的自定义对象类应该放弃分配对象的主要规则,但是我需要像使用此类对象那样的完整实现
我是iPhone应用程序开发的新手,所以如果我在此问题中的任何地方有误,请指导
最佳答案
static MyClass *_sharedInstance;
+ (MyClass *)sharedMyClass
{
@synchronized([MyClass class]) {
if (_sharedInstance == nil)
[[self alloc] init];
return _sharedInstance;
}
return nil;
}
+(id) alloc
{
@synchronized([MyClass class]) {
NSAssert(_sharedInstance == nil, @"Attempted to allocate a second instance of MyClass.");
_sharedInstance = [super alloc];
return _sharedInstance;
}
return nil;
}
+ (id) allocWithZone:(NSZone *)zone
{
@synchronized([MyClass class]) {
NSAssert(_sharedInstance == nil, @"Attempted to allocate a second instance of MyClass.");
_sharedInstance= [super allocWithZone:zone];
return _sharedInstance;
}
return nil; //on subsequent allocation attempts return nil
}
- (id) copyWithZone:(NSZone *)zone
{
return self;
}
- (id)retain
{
return self;
}
- (NSUInteger)retainCount
{
return NSUIntegerMax;
}
- (oneway void)release
{
// Do nothing
}
- (id)autorelease
{
return self;
}
关于iphone - 如何在我的iPhone项目中实现Singleton Pattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470112/
我是一名优秀的程序员,十分优秀!