我正在开发一个Cocoa应用程序,并且我使用常量NSStrings作为存储我的首选项的键名的方法.
我知道这是一个好主意,因为它可以在必要时轻松更改密钥.此外,它是整个'将您的数据与逻辑分离'的概念.
无论如何,是否有一种很好的方法可以为整个应用程序定义一次这些常量?我确信这是一种简单而聪明的方式,但是现在我的课程只是重新定义了他们使用的课程.
我的单例访问器方法通常是以下的一些变体:
static MyClass *gInstance = NULL;
+ (MyClass *)instance
{
@synchronized(self)
{
if (gInstance == NULL)
gInstance = [[self alloc] init];
}
return(gInstance);
}
Run Code Online (Sandbox Code Playgroud)
我可以做些什么来改善这个?
就像:
"APP_INFO" : {
"v":"2.0",
"appid":"1",
"lang":"zh-Hans",
}
Run Code Online (Sandbox Code Playgroud)
我不能使用init方法,因为它不是编译时常量.
我可以像这样定义全局字符串:
// .h
extern NSString * const myString;
// .m
NSString * const myString = @"String";
Run Code Online (Sandbox Code Playgroud)
现在我需要类似地定义UIcolor,我该怎么做?
我尝试着:
// .h
extern UIColor * const myColor;
// .m
UIColor * const myColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
但它没有用,我得到了 error: initializer element is not constant
谢谢