gpt4 book ai didi

iphone - 如何在我的iPhone项目中实现Singleton Pattern?

转载 作者:行者123 更新时间:2023-12-01 18:28:01 25 4
gpt4 key购买 nike

我正在一个项目中工作,我想使用单例模式模型。
我想要这个休假单例模式的任何数据模型。
我研究了有关此的苹果文档

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com