21

最近、2 つの NSURL を比較し、1 つの NSURL を NSString (URL アドレス) と比較するときに問題が発生しました。状況は、どこかから NSURLRequest を取得した場合で、それが指す URL アドレスを知っている場合と知らない場合があります。 URL NSString、たとえば「http://m.google.com」、その NSURLRequest の URL が私が持っていた URL 文字列と同じかどうかを確認する必要があります。

[[request.URL.absoluteString lowercaseString] isEqualToString: [self.myAddress lowercaseString]];

absoluteStringを使用して NSURLRequest を作成しても、文字列は最後にスラッシュなしで「http://m.google.com」ですが、「http://m.google.com/」が返されるため、これは NO を返します

[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.google.com"]]

それはまだ私に「http://m.google.com/」を与えますabsoluteString.NSURLまたは1つのNSURLと1つのNSStringと比較する信頼できる方法はありますか?

  1. あるものが別のものを「含む」かどうかを確認しますが、「http://m.google.com/blabla」には「http://m.google.com」が含まれているため、これは信頼できません。

  2. NSString を NSURL に変換し、isEqualメソッドを使用して 2 つの NSURL を比較すると、うまくいけば NSURL の実装がisEqualそれを理解できるでしょうか?

  3. ステップ 2 に基づいていますが、standardizedURL?を使用して各 NSURL を標準の URL に変換します。

どうもありがとう!

4

4 に答える 4

-10

簡単な方法は次のとおりです。

NSString*urlString=[NSString stringWithFormat:@"%@",request.URL];

したがって、NSString メソッド isEqual と比較します。

BOOL equalty=[urlString isEqual:anotherNSString];

XD

于 2012-12-19T19:53:02.150 に答える