与单例实现共享数据

时间:2014-02-16 08:56:04

标签: objective-c

我必须在所有类之间共享许多静态NSStrings。 我想使用单身人士。

我试过这个单身人士:

static GlobalData *sharedSingleton = NULL;

    + (GlobalData *)sharedGlobals
    {
        @synchronized(self)
        {
            if (sharedSingleton == NULL)
                sharedSingleton = [[self alloc] init];
        }

       //should i put a nsstring here ?            

        return(sharedSingleton);
    }

我的问题是,我在哪里设置静态NSStrings以及如何设置?

1 个答案:

答案 0 :(得分:0)

您可以像设置普通类一样设置静态字符串,这意味着您可以在@interface中声明它们,并且可以在单例初始化程序中初始化它们。单例与任何对象完全相同,只是你只有一个实例(由静态变量sharedSingleton监视)。

此外,如果您在许多对象中使用相同的字符串,并且在应用程序的生命周期中它们保持不变,那么您可以考虑将字符串声明为#define的常量。

EDIT 声明应该像

@interface GlobalData
@property NSString *myString;
...
@end

从代码的任何部分开始。

NSLog(@"%@", [[GlobalData sharedGlobals] myString];