最近、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と比較する信頼できる方法はありますか?
あるものが別のものを「含む」かどうかを確認しますが、「http://m.google.com/blabla」には「http://m.google.com」が含まれているため、これは信頼できません。
NSString を NSURL に変換し、
isEqual
メソッドを使用して 2 つの NSURL を比較すると、うまくいけば NSURL の実装がisEqual
それを理解できるでしょうか?ステップ 2 に基づいていますが、
standardizedURL
?を使用して各 NSURL を標準の URL に変換します。
どうもありがとう!