我有一个xcconfig文件,其中包含我的应用应该点击的服务器的配置。在调试模式下,这将是与发布版本不同的服务器。
我遇到的问题是,在双斜杠后,http://www.stackoverflow.com形式的URL被视为注释。所以我在代码中得到的字符串是'http:'
我已经读过我可以在Info.plist上放置一个传统的构建标志,我想知道是否有其他人有类似的问题并且已经解决了它?
感谢。
答案 0 :(得分:47)
这是一个简单的解决方法:
var TeamSetupViewModel = function () {
var self = this;
self.teamsetup = ko.observableArray();
self.availablePlayers = ko.observableArray();
self.testPlayers = ko.observableArray();
}
var model = new TeamSetupViewModel();
ko.applyBindings(model, document.getElementById("team-setup"));
var uri = 'api/MainPage/GetTeamSetup/' + getQueryVariable("teamId");
$.get(uri,
function (data) {
model.teamsetup(data);
model.availablePlayers(data.AvailablePlayers);
model.testPlayers(data.AvailablePlayers);
console.log(data);
}, 'json');
});
答案 1 :(得分:31)
我也无法弄清楚如何在xcconfig文件中使用双斜杠。 但我在
中找到了解决方法 来自Xcode-users邮件列表的:在 xcconfigfile 中,保存不带http方案的URL:
MYURL = stackoverflow.com
在 Info.plist 中,将属性值设置为
http://${MYURL}
答案 2 :(得分:12)
只需声明
SIMPLE_SLASH=/
然后您的网址变为
http:$(SIMPLE_SLASH)/www.stackoverflow.com
答案 3 :(得分:6)
SLASH=/
API_URL=http:$(SLASH)/endpoint.com
答案 4 :(得分:-3)
您不应该将xcconfig文件用于此设置。
xcconfig文件不是“普通”标头或模块文件,它是预处理器的输入,最终是编译器的输入。它没有指明xcconfig文件解析器如何处理字符编码,它是否识别转义序列,它是否扩展宏,以及如何定义字符文字等等。
在这种情况下,使用“config.h”头文件并使用基于预处理器定义的条件会好得多:
#if defined (DEBUG)
NSURL* url = ...
#else
NSURL* url = ...
#endif
此处,默认情况下为调试配置定义DEBUG
。您可以在“预处理器宏”下的构建设置中#define任何其他定义。
答案 5 :(得分:-3)
您可以使用反斜杠转义:
URL = "http:\/\/mydomain.com"
修改强>
在重新构建之前不要忘记清理项目。