Swift 4 假设“文件名”是你在应用程序中需要的字符串。 将filename=YOUR_STRING添加到用户定义的设置中(用于调试和发布)。 并将filename = $(filename)添加到info. plist。 在Swift代码中:
if let filename = Bundle.main.infoDictionary?["filename"] as? String {
// do stuff with filename
}
else {
// filename wasn't able to be casted to String
}
6条答案
按热度按时间zy1mlcev1#
我是这么做的,我不确定这是不是你想要的:
1.进入构建设置面板,选择左下方的齿轮图标:添加用户定义的设置
1.创建用户定义的设置,例如:
字符串
1.然后,在预处理器宏的设置中,您可以引用该值:
型
现在你可以在所有的源文件中引用LANGCODE,它将是你在自定义构建设置中填写的任何内容。我意识到这里有一定程度的间接性,但在我的例子中这是故意的:我的XCode项目包含了一堆不同的目标/配置,它们有自己的预处理器宏。我不想为了改变语言代码而进入所有这些。事实上,我在项目级别定义语言代码。我也在几个脚本中使用MY_LANG,所以 * 仅仅 * 一个预处理器宏是不行的。可能有更聪明的方法,但这对我来说很有效。
c6ubokkw2#
您可以在运行时访问用户定义的构建设置(如@JWWalker的评论中所建议的)
1.向
Info.plist
文件中添加一个条目,并将其设置为用户定义的构建设置字符串
1.从代码中读取其值
Objective-C
型
**[Edit]**Swift
型
oyt4ldly3#
Swift 4
假设“文件名”是你在应用程序中需要的字符串。
将filename=YOUR_STRING添加到用户定义的设置中(用于调试和发布)。
并将filename = $(filename)添加到info. plist。
在Swift代码中:
字符串
u0njafvf4#
您的代码无法读取任意生成设置。您需要使用预处理器宏。
编辑:例如,在配置的目标设置中,您可以在预处理器宏构建设置中添加
DEBUGGING=1
,而不在发布配置中定义DEBUGGING。然后在源代码中,您可以执行以下操作:字符串
jdg4fx2g5#
我试过这个小建议,但对我不起作用。
我是用这个做的:
字符串
bwntbbo36#
如果其他人仍然在寻找如何做预处理器宏,请在Build Settings中查找Apple LLVM - Preprocessing部分。在它下面,您将看到一个名为Preprocessor Macros的部分。
默认情况下,Xcode在这里插入DEBUG=1宏用于调试构建配置。
你可以在这里添加你自己的,并为调试、发布和任何你可能拥有的自定义构建版本给予不同的值。
要添加一个宏,双击当前值列表,它会显示一个漂亮的小编辑器,每行一个宏。只需添加您自己的宏名,然后给予一个值,就像调试一样。
这些可以在预处理器构建阶段使用#if,#ifdef等进行检查,以提供条件代码或值。
希望能帮上忙。