超链接与不工作在iOS%@
所以我在我的Localizable.strings下面的链接文件:超链接与不工作在iOS%@
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: "")
}
}
我想没有问题有关的特殊字符,但你可以尝试这样做:
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
的,我不明白你为什么要这样的请求。以我的方式,我使用基本URL +接口名称+参数。像使用AFNetworking一样,params应该是一个容易生成的字典。
无论如何,如果你想有一个长串状的URL,在斯威夫特你最好用“的categoryId = \(ID)”来加载你想要不同的ID。
最后,如果你坚持使用:
String(format: someURL, arguments: ["123"])
你能举一个例子吗?我使用AlamoFire以及 – SoundShock
'Manager.sharedInstance.request(方法,api.apiURLString(),参数:参数,可以编码:.URL,标头:无)'params为[字符串:AnyObject]。 'api'是APIManager,一个对象类提供了一些关于API的信息(比如完整的URL字符串)。 –
'但是,这给出了一个crash'有什么错误讯息?它出现在哪里? – Moritz
@EricD崩溃只是一个线程1:。EXC_BREAKPOINT(代码= 1,......它出现在'让URL'线的错误信息是超级通用的,甚至没有出现在输出了 – SoundShock
请问'打印(“someURL” .localized)'输出什么样的预期?貌似有一个与本地化的字符串的问题。 – Moritz