Vor kurzem habe ich ein Problem, wenn zwei NSURLs zu vergleichen und ein NSURL mit einem NSString vergleichen (die eine URL-Adresse ist), ist die Situation, die ich von irgendwo einen NSURLRequest bekam, kann ich oder nicht die URL-Adresse weiß, kann es zu den Punkten, und ich habe eine URL NSString, sagen Sie „http://m.google.com“, jetzt muss ich überprüfen, ob die URL in diesem NSURLRequest die gleiche wie die URL-Zeichenfolge, die ich hatte:Zuverlässige Möglichkeit, zwei NSURL oder eine NSURL und eine NSString zu vergleichen?
[[request.URL.absoluteString lowercaseString] isEqualToString: [self.myAddress lowercaseString]];
dieses NO zurückgibt wie die absoluteString
gibt mir "http://m.google.com/" wo meine Zeichenfolge ist "http://m.google.com" ohne Schrägstrich am Ende, auch wenn ich den NSURLRequest erstellen mit
[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.google.com"]]
es gibt mir noch „http://m.google.com/“ für absoluteString
, frage ich mich, ist es eine zuverlässige Art und Weise zu NSURL oder ein NSURL und ein NSString zu vergleichen?
prüfen, ob eine andere ‚enthält‘, aber das ist nicht zuverlässig, wie ‚http://m.google.com/blabla‘ enthält ‚http://m.google.com‘.
wandeln den NSString zu NSURL und verwenden Sie die
isEqual
Methode zwei NSURL zu vergleichen und hoffentlich NSURL Implementierung vonisEqual
kann es herausfinden?basierend auf Schritt 2, aber konvertieren Sie jede NSURL zu einer Standard-URL mit
standardizedURL
?
Vielen Dank!
hat die zweite NSURL ein '/' am Ende davon?das wäre genug, um die 'isEqualToString'-Methode loszuwerden. – Robotnik
Ja, aber was ich verlange, ist ein zuverlässiger Weg, der es mir nicht erlaubt, sicherzustellen, dass es ein '/' am Ende gibt, da die tatsächliche URL die gleiche ist Egal, ob du ein '/' am Ende hast oder nicht. – hzxu
Nein, 'isEqual:' von 'NSURL' findet es nicht" heraus :( – dasblinkenlight