我在Interface Builder中有一堆绑定。当我想访问它时,我必须这样做,例如:
[[NSUserDefaults standardUserDefaults] integerForKey:@"bINDDPagesTag"]
并且我必须对其他绑定执行至少20次...所以,如果我对这些绑定使用
#define
,这是正常的吗:#define kINDDPagesTag [[NSUserDefaults standardUserDefaults] integerForKey:@"bINDDPagesTag"]
#define kINDDRange [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDRange"]
#define kINDDBleedTop [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDBleedTop"]
#define kINDDBleedBottom [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDBleedBottom"]
#define kINDDBleedInside [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDBleedInside"]
#define kINDDBleedOutside [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDBleedOutside"]
#define kINDDSendData [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDSendData"]
它工作正常,但是我应该用这种方式吗?我有更好的办法吗?
谢谢!
最佳答案
我从来没有那样做过,但是我看不出您的方法行不通的原因。但是,我认为创建静态实用程序类可能会更灵活,更可维护,例如:
@interface InterfaceConstants : NSObject {
}
+ (int)pagesTag;
+ (id)range;
//etc.
@end
@implementation InterfaceConstants
+ (int)pagesTag {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"bINDDPagesTag"];
}
+ (id)range {
return [[NSUserDefaults standardUserDefaults] objectForKey:@"bINDDRange"];
}
//etc.
@end