gpt4 book ai didi

objective-c - Cocoa 绑定(bind)和宏

转载 作者:行者123 更新时间:2023-12-03 17:16:20 25 4
gpt4 key购买 nike

我在 Interface Builder 中有一堆绑定(bind)。当我想访问它时,我必须这样做,例如:

[[NSUserDefaults standardUserDefaults] integerForKey:@"bINDDPagesTag"]

而且我必须为其他绑定(bind)执行至少 20 次...所以,如果我像这样对这些绑定(bind)使用 #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

关于objective-c - Cocoa 绑定(bind)和宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com