Vérifier si une url valide afin que je puisse les transmettre à un NSURL?
Je veux vérifier si une NSString
est une URL valide afin que je puisse l'analyser pour un NSURL
variable... est-il un moyen facile de faire cela? 🙂
CRASH
Pour une raison quelconque, l'application se bloque lors de la vérification.....
NSURL *shortURL = [[NSURL alloc] initWithString:data];
if(shortURL == nil)
{
NSLog(@"INVALID");
}
else {
NSLog(@"COOOL");
}
La console me donne cette erreur.....
* Fin de l'app en raison de uncaught exception 'NSInvalidArgumentException', la raison: '* -[NSURL initWithString:relativeToURL:]: aucun paramètre de chaîne'
2010-03-01 19:24:14.797 Snippety[8289:5e3b] la Pile: (
8307803,
2419510843,
8391739,
8391578,
2898550,
3152497,
12262,
12183,
27646,
2662269,
2661144,
2454790485,
2454790162
)
OriginalL'auteur tarnfeld | 2010-03-01
Vous devez vous connecter pour publier un commentaire.
Edit: au-dessous de la réponse n'est pas vrai. (Apple docs: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/index.html)
NSURL
'sURLWithString
retournenil
si l'URL passée n'est pas valide. Ainsi, vous pouvez simplement vérifier la valeur de retour de déterminer si l'URL est valide.Exemple:
NSURL fera un plaisir de gérer toute la chaîne de valeur, sauf néant. C'est le seul que vous devez spécial pour
ce qui est faux. n'importe quelle chaîne va passer comme une url lors de l'utilisation de URLWithString.
S'avère
NSURL
's de la manipulation denil
chaînes changé assez récemment, pour la version de mac OS X 10.7, etc.: mikeabdullah.net/urlwithstring-changed.htmlPas de travail !!!
OriginalL'auteur MarkPowell
Je suis en utilisant la méthode ci-dessous pour vérifier si NSString chaîne de test est une URL valide:
régime tests le préfixe de l'URL, par exemple: http://, https://ou ftp://
hôte tests le domaine de l'URL, par exemple google.com ou images.google.com
Remarque: Cela va vous donner quelques faux positifs, par exemple lors de la vérification de http://google com (notez la virgule) sera de retour valide mais il est certainement plus précis que la simple vérification que NSURL n'est pas nulle (
[NSURL urlWithString:@"banana"]
n'est pas nul).OriginalL'auteur Erik