在iOS中,哪里是存储配置值的正确位置?

时间:2013-06-14 14:28:43

标签: ios configuration

我的AppDelegate.h

我刚刚定义了常量:

#define XXDefaultFeedbackRecipent @"feedback@app.com"
#define XXDefaultFeedbackSubject @"Feedback"

定义这些类型设置的正确位置是什么?它们不是用户设置,但它们确实可以从一个版本更改为下一个版本。

3 个答案:

答案 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来存储值。它使编辑配置值变得更加容易,并通过推送通知实现了持续集成设置,多个服务环境和远程配置更新的进一步灵活性。