我必须在所有类之间共享许多静态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
以及如何设置?
答案 0 :(得分:0)
您可以像设置普通类一样设置静态字符串,这意味着您可以在@interface中声明它们,并且可以在单例初始化程序中初始化它们。单例与任何对象完全相同,只是你只有一个实例(由静态变量sharedSingleton
监视)。
此外,如果您在许多对象中使用相同的字符串,并且在应用程序的生命周期中它们保持不变,那么您可以考虑将字符串声明为#define
的常量。
EDIT 声明应该像
@interface GlobalData
@property NSString *myString;
...
@end
从代码的任何部分开始。
NSLog(@"%@", [[GlobalData sharedGlobals] myString];