/ / Hipervínculo con% @ no funciona en iOS: ios, swift, hipervínculo, localización, nslocalizedstring

El hipervínculo con% @ no funciona en iOS: ios, swift, hipervínculo, localización, nslocalizedstring

entonces tengo el siguiente enlace en mi archivo Localizable.strings:

someURL = "https://www.thisisthelink.be/api/article?categoryId=%@&key=ehhssd%bfbfs43-53456Gdffd~563&lang=nl&amount=1000&mobile=true";

La parte donde está el% @ necesito completar el ID de esa categoría (por ejemplo, 27). Entonces en mi código hago lo siguiente

   let URL = String(format: "someURL".localized,String(id))

Pero esto produce un bloqueo, y no sé realmente por qué (el bloqueo es solo un Hilo 1: EXC_BREAKPOINT (código = 1, ...), por lo que no puedo deducir qué está exactamente mal).

El .localized es la siguiente extensión

extension String {
var localized: String {
return NSLocalizedString(self, comment: "")
}
}

Respuestas

0 para la respuesta № 1

No entiendo por qué quieres una solicitud como esa. En mi forma, uso URL base + nombre de interfaz + parámetros en su lugar. Al igual que con AFNetworking, los parámetros deberían ser un diccionario fácil de generar.

De todos modos, si desea una URL similar a una cadena larga, en Swift "mejor use" categoryId = (id) "para cargar la identificación diferente que desee.

Y finalmente, si insiste en usar eso:

String(format: someURL, arguments: ["123"])


0 para la respuesta № 2

Supongo que no hay un problema con los caracteres especiales, pero puedes intentar hacerlo:

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))

No me gusta localizar las URL porque pueden tener composiciones impredecibles, la mejor manera es localizar solo el texto para evitar precisamente los problemas de formato.

P.S .: Por lo general, usando mayúsculas para el nombre de las propiedades que se considera una mala actitud, debe usar uRLstr o uRL en lugar de URL