我的AppDelegate.h
我刚刚定义了常量:
#define XXDefaultFeedbackRecipent @"feedback@app.com"
#define XXDefaultFeedbackSubject @"Feedback"
定义这些类型设置的正确位置是什么?它们不是用户设置,但它们确实可以从一个版本更改为下一个版本。
答案 0 :(得分:1)
没有正确的地方,但你可以把它放在'常量'文件中(我通常会创建一个名为常量的类,删除类的接口和实现并保留文件用于此目的),或者在类中你使用那些定义。
但是,保留此数据的更好方法是使用以下内容:
// in your .h file
extern NSString * const XXDefaultFeedbackRecipent;
// in your .m file
NSString * const XXDefaultFeedbackRecipent = @"feedback@app.com";
P.S。有一个关于编写#defines的约定,希望你用大写字母写下#defines的名字,用下划线分隔单词(例如MY_DEFINE)。这是为了防止与C库和其他文件中的其他内容发生冲突。在编写#defines时请记住这一点。
答案 1 :(得分:0)
您可以将它们作为常量保存在您的班级中,并通过.h文件中的extern访问它们。 我还建议使用consts,以确保类型安全。
In your .h
extern NSString * const XXDefaultFeedbackRecipent;
extern NSString * const XXDefaultFeedbackSubject;
In your .m
NSString * const XXDefaultFeedbackRecipent = @"feedback@app.com";
NSString * const XXDefaultFeedbackSubject = @"Feedback";
答案 2 :(得分:0)
我推荐其他答案解释的方法。使用extern NSString * const
在所引用的任何地方都避免使用#defines这样的东西,将分配一个新的NSString。如果您只引用一次或两次但远非最佳状态,则不成问题。
小心不要误用它。对于配置值,服务端点等,请考虑使用plist来存储值。它使编辑配置值变得更加容易,并通过推送通知实现了持续集成设置,多个服务环境和远程配置更新的进一步灵活性。