Ios 在多个文件中重复使用相同的UIColor

Ios 在多个文件中重复使用相同的UIColor,ios,objective-c,uicolor,Ios,Objective C,Uicolor,我需要在一堆文件中使用相同的颜色,所以我决定使用“全局变量”来实现。我创建了一个名为ColrClass的NSObject类,并实现了如下一些类方法: +(UIColor *) returnRedColor { UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1]; return redColr; } [[ColrClass sharedInstance] returnRedCo

我需要在一堆文件中使用相同的颜色,所以我决定使用“全局变量”来实现。我创建了一个名为
ColrClass
NSObject
类,并实现了如下一些类方法:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];

那么我的问题是,还有其他方法可以做到这一点吗?我想使用最合理的解决方案,但不确定这些类方法是否是最好的。我错了吗?这是一个很好的解决方案?或者有更好的解决方案吗?

您可以在
UIColor
上进行分类。文件名类似于
UIColor+ColorClass
。类别如下所示:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];
UIColor+ColorClass.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorClass)
+ (UIColor *)returnRedColor;
@end

然后在
ProjectName prefix.pch
中,您可以执行
#导入“UIColor+ColorClass.h
以使此方法在整个项目中都可用。方法调用将是
[UIColor returnRedColor];

您可以在
UIColor
上创建一个类别来执行此操作。文件名类似于
UIColor+ColorClass
。该类别如下所示:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];
UIColor+ColorClass.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorClass)
+ (UIColor *)returnRedColor;
@end

然后在
ProjectName prefix.pch
中,您可以执行
#导入“UIColor+ColorClass.h
,使此方法在整个项目中都可用。方法调用将是
[UIColor returnRedColor]

您可以在
UIColor
上创建一个类别来执行此操作。文件名类似于
UIColor+ColorClass
。类别如下所示:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];
UIColor+ColorClass.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorClass)
+ (UIColor *)returnRedColor;
@end

然后在
ProjectName prefix.pch
中,您可以执行
#导入“UIColor+ColorClass.h
以使此方法在整个项目中都可用。方法调用将是
[UIColor returnRedColor];

您可以在
UIColor
上创建一个类别来执行此操作。文件名类似于
UIColor+ColorClass
。该类别如下所示:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];
UIColor+ColorClass.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorClass)
+ (UIColor *)returnRedColor;
@end

然后在
ProjectName prefix.pch
中,您可以执行
#导入“UIColor+ColorClass.h
,使此方法在整个项目中都可用。方法调用将是
[UIColor returnRedColor]

在这种情况下,我更喜欢使用单例实例而不是类方法。我认为这样更好,因为您可以在必要时重写这些方法

/* ... */
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;

}
然后像这样使用:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];

在这种情况下,我更喜欢使用单例实例而不是类方法。我认为这样更好,因为您可以在必要时重写这些方法

/* ... */
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;

}
然后像这样使用:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];

在这种情况下,我更喜欢使用单例实例而不是类方法。我认为这样更好,因为您可以在必要时重写这些方法

/* ... */
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;

}
然后像这样使用:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];

在这种情况下,我更喜欢使用单例实例而不是类方法。我认为这样更好,因为您可以在必要时重写这些方法

/* ... */
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;

}
然后像这样使用:

+(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}
[[ColrClass sharedInstance] returnRedColor];

ColorClass
不是类别的合适名称。取而代之的是考虑诸如<代码> XyZAddiest之类的东西(假设你的项目前缀是XYZ)。此外,不要命名方法<代码> ReutReChutoSux/Cuff>,考虑根据COOMA命名准则命名它<代码> RealCho色[< /代码> ] <代码> ColorClass < /C> >不是一个类别的适当名称。取而代之的是考虑诸如<代码> XyZAddiest之类的东西(假设你的项目前缀是XYZ)。此外,不要命名方法<代码> ReutReChutoSux/Cuff>,考虑根据COOMA命名准则命名它<代码> RealCho色[< /代码> ] <代码> ColorClass < /C> >不是一个类别的适当名称。取而代之的是考虑诸如<代码> XyZAddiest之类的东西(假设你的项目前缀是XYZ)。此外,不要命名方法<代码> ReutReChutoSux/Cuff>,考虑根据COOMA命名准则命名它<代码> RealCho色[< /代码> ] <代码> ColorClass < /C> >不是一个类别的适当名称。取而代之的是考虑诸如<代码> XyZAddiest之类的东西(假设你的项目前缀是XYZ)。此外,不要命名方法>代码> ReutReChutoSux/Cuff>,考虑根据COOCAA命名准则命名它<代码> RealCho色[ >。如果它是单曲,如何以及在什么情况下重写这些方法?您可以这样使用:ColrClass * CalrStase= [ AyCulrBaseLubaseSaldDebug实例]。这是保持单例并更改实现的方法。如果是单例,您将如何以及在什么情况下重写这些方法?您可以这样使用:ColrClass*colrInstance=[AnyColrClassSublass sharedInstance]。这是保持单例并更改实现的方法。如果是单例,您将如何以及在什么情况下重写这些方法?您可以这样使用:ColrClass*colrInstance=[AnyColrClassSublass sharedInstance]。这是保持单例并更改实现的方法。如果是单例,您将如何以及在什么情况下重写这些方法?您可以这样使用:ColrClass*colrInstance=[AnyColrClassSublass sharedInstance]。这就是保持单例并更改实现的方法。