我确信这个问题很容易回答......有没有办法让iPhone上的变量和帮助程序在应用程序范围内可用,而不使用Application委托?
谢谢!
------------编辑------------
感谢您的帮助。你的评论有帮助!这就是我实现我的解决方案......
的UIColor + Helpers.h:
#import <Foundation/Foundation.h>
@interface UIColor (Helpers)
+ (UIColor *)getHexColorWithRGB:(NSString *)rgb alpha:(float)theAlpha;
@end
的UIColor + Helpers.m
#import "UIColor+Helpers.h"
@implementation UIColor (Helpers)
+ (UIColor *)getHexColorWithRGB:(NSString *)rgb alpha:(float)theAlpha {
unsigned int red, green, blue;
NSRange range;
range.length = 2;
range.location = 0;
[[NSScanner scannerWithString:[rgb substringWithRange:range]] scanHexInt:&red];
range.location = 2;
[[NSScanner scannerWithString:[rgb substringWithRange:range]] scanHexInt:&green];
range.location = 4;
[[NSScanner scannerWithString:[rgb substringWithRange:range]] scanHexInt:&blue];
return [UIColor colorWithRed:(float)(red/255.0f) green:(float)(green/255.0f) blue:(float)(blue/255.0f) alpha:theAlpha];
}
@end
还有一个问题......这是一个可以接受我的配置全局常量的地方吗?
答案 0 :(得分:2)
很多方式(好吧,至少两个......)
您可以将普通的C extern
用于全局变量
您可以编写一个返回共享“全局”实例的类方法(例如,[NSUserDefaults standardUserDefaults]
的工作方式)
关于过度使用全局变量的标准警告适用于......
编辑:
如果您想要的用例是添加一个方便的方法来向UIColor colorWithRed:green:blue:alpha:
提供十六进制值,那么使用Objective-C类别的一个好方法是。例如:
UIColorHelper.h包含:
@interface UIColor (MyUIColorExtensions)
+ (UIColor *)colorWithHexRGB:(NSString *)rgb;
@end
和UIColorHelper.m包含相应的@implementation
。
在UIColor上创建类别后,应用程序的其余部分可以使用以下内容调用它:
[UIColor colorWithHexRGB:@"#3366ff"]
答案 1 :(得分:0)
您可以使用define,全局const变量等创建类似myConfig.h的.h文件,并将其包含在预取文件[YourProject.pch]中。您也可以在那里包含助手类别。
答案 2 :(得分:0)
您可以使用单例类,因此您只需要一个实例来包含全局大桶和辅助函数。我即将在我的博客http://blog.replicated.co.uk
上详述这种方法