iOS XCode:如何在 运行 时从构建设置中加载用户定义设置的值

iOS XCode: How to load a value from a user-defined setting from build settings at run time

我在代码中有以下常量:

static NSString* const MyUrl = @"www.myurl.com";

是否有可能创建一个用户定义的设置并分配一个值,该值可以在 运行 时间或存档期间替换 MyUrl const 的值?

我的情况如下:我有一个包含各种目标的项目。每个目标指向代码中不同的 URL。如果我可以通过用户定义的设置来管理 URL 而不是每次更改目标时都必须更改代码,那就太好了。

不,您不能更改 const 变量的值。

您可以通过 NSString *myURL = @"www.url.com";

更改 URL 字符串的值

并在 AppDelegate 中使用全局变量并在项目的任何位置使用它。

我认为您需要在您的应用程序之外使用数据库或任何其他来源。并在 URL 字符串发生变化时获取它,您可以在代码中使用 NSString 变量。您可以根据需要使用 parse(但是,Parse 明年将停止服务,但您可以使用许多免费的在线数据库)。使用此方法,您无需更改代码即可更新 URL 字符串。希望我能正确得到你需要的东西。

您可以为此使用预处理器宏。转到 Xcode>Project>Target>Build Settings>Preprocessor Macros。然后为每个构建配置(调试、发布等)添加一个特定于目标的宏。在您的源代码中,您现在可以通过使用 #ifdef.

引用宏来识别您的目标

示例:

#ifdef TARGET1
static NSString* const MyUrl = @"www.myurl.com";
#endif

#ifdef TARGET2
static NSString* const MyUrl = @"www.myur2.com";
#endif

下图描述了构建设置中TARGET宏的声明-

考虑使用 info.plist 来存储此类值。