我在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"]
它完美无缺,但我应该用这种方式吗?我有更好的方法吗? 谢谢!
答案 0 :(得分:1)
我从来没有这样做过,但我认为没有理由说你的做法不起作用。但是,我认为创建一个静态实用程序类可能会更灵活,更易于维护,例如:
@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