相关疑难解决方法(0)

我的Objective-C单身人物应该是什么样的?

我的单例访问器方法通常是以下的一些变体:

static MyClass *gInstance = NULL;

+ (MyClass *)instance
{
    @synchronized(self)
    {
        if (gInstance == NULL)
            gInstance = [[self alloc] init];
    }

    return(gInstance);
}
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来改善这个?

singleton design-patterns objective-c object-initializers

334
推荐指数
10
解决办法
18万
查看次数

Objective-C - 优化这种单例模式?

我在网上发现了单身人士模式.在我看来,它有许多可以优化的东西.

- 在sharedMySingleton方法中,不需要调用保留?我不确定...... -
如果不是,为什么还有保留allocWithZone
- 是什么用的@synchronized.NSAssert认为可以多次调用块,所以如果是的话,应该有更多的代码来释放先前的内存,或者在没有NSAsserting的情况下清楚地退出块,如果没有,为什么会出现这个NSAssert?
- 链子beetween sharedMySingletonalloc似乎很奇怪.我自己写了类似的东西:

+(MySingleton*)sharedMySingleton
{
    @synchronized([MySingleton class])
    {
        if (_sharedMySingleton == nil) _sharedMySingleton = [[self alloc] init];
        return _sharedMySingleton;
    }

    return nil;
}

+(id)alloc
{
    @synchronized([MySingleton class])
    {
        return [super alloc];
    }

    return nil;
} 
Run Code Online (Sandbox Code Playgroud)

单身模式

#import "MySingleton.h"

@implementation MySingleton

// ##########################################################################################################
// ######################################## SINGLETON PART ##################################################
// ##########################################################################################################
static MySingleton* _sharedMySingleton = nil;

// =================================================================================================
+(MySingleton*)sharedMySingleton
// =================================================================================================
{
    @synchronized([MySingleton class])
    {
        if …
Run Code Online (Sandbox Code Playgroud)

iphone singleton memory-management objective-c ios

5
推荐指数
1
解决办法
927
查看次数