gpt4 book ai didi

objective-c - 在 iOS 上处理复杂配置的首选方式/设计模式

转载 作者:行者123 更新时间:2023-11-29 11:12:56 24 4
gpt4 key购买 nike

假设你需要对一系列不同的Object进行一系列复杂的配置。这个配置可以是NSString比如服务的服务器地址,NSNumber比如超时时间等等。我想施加以下约束:

  • 配置不得对用户可见和/或不可编辑,因此应用程序包中的 plist 不是可接受的解决方案
  • 我需要针对调试、AdHoc 或发布目标的不同配置值(我可能会通过一系列 #ifdef 来实现这一点,但我写这些是为了保证完整性)
  • 我想要配置的所有对象都属于一个静态库,我想从使用这个静态库的代码中注入(inject)配置(注入(inject)是斜体的,因为我个人对依赖的提示注入(inject))

我的问题是:实现此目标的最佳方法是什么?你遇到过这样的问题吗?你是怎么解决的?

最佳答案

利用 Xcode 构建系统。你可以有 Xcode configuration files适用于任何构建配置(调试、发布等)和目标组合。

这些文件支持继承以简化共享配置。没有单一的方法来定义选项。一个简单的方法是使用 GCC_PREPROCESSOR_DEFINITIONSCFLAGS 或您的编译器将使用的任何内容。

TargetX.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = STAGE=2 SERVER_URL='www.wuonm.com'

使用配置值构建所需的 NSStringNSNumber 对象是相当简单的。提示:您将需要某种 stringification .

它与使用 #define 非常相似,但恕我直言,如果您投入一些时间,它会更加清晰和结构化 understanding如何xcconfig files工作。

关于objective-c - 在 iOS 上处理复杂配置的首选方式/设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10716604/

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