一个UberData
大类(实际上,如果您正在考虑属性,您的意思是该类的一个实例)是错误的方法。
菜单字符串和视图颜色有什么关系?没有什么。因此它们不属于同一类。
字符串
对于您的菜单字符串,请查看NSLocalizedString
宏并创建一个字符串文件。您可以创建一个CommonStrings
包含所有调用的类NSLocalizedString
:
@interface CommonStrings : NSObject
+ (NSString *)open;
+ (NSString *)save;
// etc.
@end
@implementation CommonStrings
+ (NSString *)open {
return NSLocalizedString(@"open", @"menu item title for opening a file");
}
+ (NSString *)save {
return NSLocalizedString(@"save", @"menu item title for saving a file");
}
// etc.
@end
这种方法意味着您只在一个地方编写@"open"
,然后[CommonStrings open]
在需要(本地化)字符串时引用。编译器会检查您是否拼写[CommonStrings open]
正确,这很好。
但是,将其分解为多个帮助器(一个用于应用程序的每个独立部分),而不是为整个应用程序提供一个巨大的帮助器,仍然可能更好。如果你使用一个巨大的包罗万象的类,那么编译你的应用程序需要更长的时间,因为每次你在这个类中添加或删除一个方法时都必须重新编译很多东西。
UIView 颜色
首先,观看WWDC 2012和WWDC 2013的外观定制视频并继续阅读UIAppearance
。也许您可以使用它来自定义应用程序的颜色。
如果这还不够,UIColor
请为您的应用颜色创建一个类别:
@interface UIColor (MyApp)
+ (UIColor *)MyApp_menuBackgroundColor;
+ (UIColor *)MyApp_menuTextColor;
// etc.
@end
@implementation UIColor (MyApp)
+ (UIColor *)MyApp_menuBackgroundColor {
return [self colorWithPatternImage:[UIImage imageNamed:@"menuBackgroundPattern"]];
}
+ (UIColor *)MyApp_menuTextColor {
return [self colorWithWhite:0.0 alpha:1.0];
}
// etc.
@end
同样,为应用程序的不同部分设置多个帮助器类别可能会更好,因此在添加或删除类别方法时不必重新编译。