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 来存储此类值。
我在代码中有以下常量:
static NSString* const MyUrl = @"www.myurl.com";
是否有可能创建一个用户定义的设置并分配一个值,该值可以在 运行 时间或存档期间替换 MyUrl const 的值?
我的情况如下:我有一个包含各种目标的项目。每个目标指向代码中不同的 URL。如果我可以通过用户定义的设置来管理 URL 而不是每次更改目标时都必须更改代码,那就太好了。
不,您不能更改 const
变量的值。
您可以通过 NSString *myURL = @"www.url.com"
;
并在 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 来存储此类值。