我需要在一堆文件中使用相同的颜色,所以我决定制作“全局变量”。我创建了一个名为NSObject
的{{1}}类,并实现了一些类方法:
ColrClass
所以我的问题是,有没有其他方法可以做同样的事情?我想使用最合理的解决方案,但不确定这些类方法是否最好。我错了,这是一个很好的解决方案吗?或者有更好的解决方案吗?
答案 0 :(得分:3)
您可以在UIColor
上创建一个类别来执行此操作。文件名看起来像UIColor+ColorClass
。该类别如下所示:
的UIColor + ColorClass.h
#import <UIKit/UIKit.h>
@interface UIColor (ColorClass)
+ (UIColor *)returnRedColor;
@end
的UIColor + ColorClass.m
#import "UIColor+ColorClass.h"
@implementation UIColor (ColorClass)
+ (UIColor *)returnRedColor
{
return [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];
}
@end
然后在您的ProjectName-prefix.pch
中,您可以#import "UIColor+ColorClass.h
在整个项目中使用此方法。方法调用将是[UIColor returnRedColor];
答案 1 :(得分:0)
在这种情况下,我更喜欢使用单例实例而不是类方法。我认为它更好,因为你可以在必要时覆盖这些方法。
/* ... */
static ColrClass* sharedInstance = nil;
// Get the shared instance and create it if necessary.
+(ColrClass*) sharedInstance {
if ( sharedInstance == nil ) {
sharedInstance = [ColrClass new];
}
return sharedInstance;
}
/* ... */
-(UIColor *) returnRedColor {
UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];
return redColr;
}
并使用如下:
[[ColrClass sharedInstance] returnRedColor];