是否有可能在所有创建用户:如何从构建设置一个用户定义的设置在运行时" />

是否有可能在所有创建用户:如何从构建设置一个用户定义的设置在运行时 - 源码之家" />

iOS版的XCode:

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

是否有可能在所有创建用户:如何从构建设置一个用户定义的设置在运行时

问题描述:

我有以下不变的代码加载一个值-defined设置并分配一个值,该值可以在运行时或归档期间替换MyUrl const的值?iOS版的XCode:</p> <pre><code>static NSString* const MyUrl = @"www.myurl.com"; </code></pre> <p>是否有可能在所有创建用户:如何从构建设置一个用户定义的设置在运行时

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

+0

是否要将设置包含在应用程序中或由用户输入? – Eiko

+0

该设置将包含在应用程序中。 – user1309226

考虑使用的info.plist用于存储这样的值。

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

您可以通过简单的NSString *myURL = @"www.url.com"更改URL字符串的值;

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

+1

考虑使用info.plist来存储这些值。 –

+0

@ArikSegal请添加您的建议作为答案,我会将其标记为答案 – user1309226

我想你需要使用数据库或任何其他来源的应用程序。只要更改了URL字符串,您就可以在代码中使用NSString变量。您可以根据需要使用parse(但是,Parse将在明年停止其服务,但有大量免费的在线DB可供您使用)。使用此方法,您无需更改代码即可更新URL字符串。我希望我能得到你需要的东西。

+0

奇怪的是我的答案有“ - ”。当我查看其他答案和问题时,我需要问“在发布应用程序时如何更改URL字符串而不释放新的二进制文件?”。这两个问题都不对,或者我在这里错过了一些东西。如果我检查答案,问题似乎很奇怪。 “用户定义的”短语与我所知道的不同... – icould

+0

1.这是关于交换目标并且在发布新的二进制文件之前。 2.用户不是指“最终用户”或“应用程序用户”,在这种情况下,这意味着构建目标,因为目标是使用设置的人。 –

您可以使用预处理器宏来达到此目的。转到Xcode>项目>目标>构建设置>预处理器宏。然后为每个构建配置(调试,发布等)添加一个目标特定的宏。在源代码中,您现在可以通过使用#ifdef引用宏来识别您的目标。

实施例:

下面的图像示出了在目标宏的声明构建设置 -

enter image description here