我对Xcode很陌生。
在过去的两天里,我试图弄清楚如何在访问web服务的我的iPhone上测试我的应用程序。在模拟器上,我可以使用硬编码的'localhost‘变量,但我不想硬编码所有的配置设置。
我正在使用Swift + Xcode 6,但我认为这是与Xcode 5相同的过程。
我看了很多文章,我认为我应该使用.xcconfig,但它非常不清楚。
例如,我创建了一个Environment.xcconfig文件。我给它装了
API_BASE_URL = "http://localhost:4000/api/v1"然后,我进入Project信息,并将调试配置文件设置为->。
然后,我尝试通过${API_BASE_URL}访问代码中的变量,但得到了Use of unresolved identifier 'API_BASE_URL'。
这非常令人沮丧。有什么想法吗?
发布于 2015-09-12 14:42:44

或者,如果您根本没有任何豆荚,配置层次结构将如下所示:




PS:通过这种方式生成的键在.swift文件中也是可识别的(确保您的Swift项目中有一个桥接头,即使您不使用obj-c源并且它将是空的)。
SWIFT2.2的更新:不再工作 DEFINITIONS constants no longer imported
发布于 2014-07-10 05:03:10
您不需要.xcconfig;它存储Xcode的设置。相反,您需要一个属性列表(.plist)文件。为此,单击command-N创建一个新文件,然后选择iOS > Resources > Property List。使用plist编辑器添加键、值和值类型。然后,通过在应用程序中添加以下行来加载您的属性:
if let filePath = NSBundle.mainBundle().pathForResource("Latin Conjugations", ofType:"plist") {
let plist = NSDictionary(contentsOfFile:filePath)
}然后,您可以通过plist字典访问属性,就像任何其他字典值一样。注意,它不是Swift Dictionary,因为它没有一个需要文件路径来加载的构造函数。
更新了2015年10月21日:这个答案现在符合SWIFT2.0标准。pathForResource()现在返回一个可选的。
https://stackoverflow.com/questions/24668284
复制相似问题