所以我在Localizable.strings文件中有以下链接:
someURL = "https://www.thisisthelink.be/api/article?categoryId=%@&key=ehhssd%bfbfs43-53456Gdffd~563&lang=nl&amount=1000&mobile=true";
有%@的部分需要填写该类别的ID(例如27)。所以在我的代码中我做了以下
let URL = String(format: "someURL".localized,String(id))
但是这会导致崩溃,我真的不知道为什么(崩溃只是一个线程1:EXC_BREAKPOINT(代码= 1,...)所以我无法推断出究竟是什么错误。)
.localized是以下扩展名
extension String {
var localized: String {
return NSLocalizedString(self, comment: "")
}
}
答案 0 :(得分:0)
我认为特殊字符没有问题,但您可以尝试:
let specialChars = "%@"
someURL = "https://www.thisisthelink.be/api/article?categoryId=\(specialChars)&key=ehhssdbfbfs4353456Gdffd4563&lang=nl&amount=1000&mobile=true"
let uRL = String(format: NSLocalizedString(someURL, comment: "someURL"), String(id))
我不喜欢本地化网址,因为它们可能有不可预测的合成,最好的方法是只定位文本以避免格式问题。
P.S。:通常在属性名称中使用大写它被认为是一种不好的态度,你应该使用uRLstr或uRL而不是URL
答案 1 :(得分:0)
我不明白你为什么要这样的请求。在我的方式,我使用基本URL +接口名称+ params。就像使用AFNetworking一样,params应该是一个易于生成的字典。
无论如何,如果你想要一个类似长字符串的URL,在Swift中你最好使用" categoryId = \(id)"加载你想要的不同id。
最后,如果你坚持使用它:
String(format: someURL, arguments: ["123"])