2017-10-09 2 views
-1

J'ai une URL qui ressemble à myapp://jhb/test/deeplink/url?id=4567. Je veux tout effacer après le caractère ?. A la fin l'URL devrait ressembler à myapp://jhb/test/deeplink/url. Comment. puis-je réaliser cela? convertir l'URL en une chaîne? Regex?Supprimer le paramètre de l'URL avec swift

+0

Il suffit de regarder celui-ci https://stackoverflow.com/questions/39184984/delete-all-characters-after-a-certain-character-from-a-string-in-swift –

Répondre

0

Vous pouvez faire comme ce

let values = utl?.components(separatedBy: "?")[0] 

Il brisera la chaîne avec ? et retourner le tableau. Le premier objet de values vous donne votre chaîne résultante.

0

Vous pouvez obtenir chaque composant URL séparée de URl en utilisant

print("\(url.host!)") //Domain name 
print("\(url.path)") // Path 
print("\(url.query)") // query string 
0

Utilisez URLComponents pour séparer les différentes parties d'URL, les manipuler, puis extraire la nouvelle url:

var components = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567")! 
components.query = nil 
print(components.url!) 

myapp://jhb/test/deeplink/url

0

puis-je y parvenir? convertir l'URL en une chaîne? Regex?

Lorsque l'on travaille avec des URL, il serait préférable de le traiter comme URLComponent:

Une structure qui analyse les URL en URL et construit à partir de leurs parties constitutives .

donc, se référant à URLComponent que demandez-vous est d'enlever le la query sous-composant de l'url:

if var componenets = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567") { 
    componenets.query = nil 

    print(componenets) // myapp://jhb/test/deeplink/url 
} 

Notez que query est une en option chaîne, ce qui signifie qu'il pourrait être nul (comme mentionné dans l'extrait de code, ce qui devrait conduire à la sortie désirée).