我在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

07-24 09:49
查看更多