On May 27, 2011, at 5:06 PM, Mike Abdullah wrote:
> It is a bit of a knotty problem. I've ended up with:
>
> - (BOOL)ks_isEqualToURL:(NSURL *)otherURL;
> {
> BOOL result = [self isEqual:otherURL];
>
> // For file: URLs the default check might have failed because they
> reference the host differently. If so, fall back to checking paths
> if (!result && [self isFileURL] && [otherURL isFileURL])
> {
> result = [[self path] isEqualToString:[otherURL path]];
> }
>
> return result;
> }
That can fail in the circumstances from my code's comment:
/*
* [NSURL isEqualTo:] fails when a path has a trailing slash and
* an otherwise matching one doesn't. Standardize the path first
* and use localizedCompare in case the characters were composited
differently.
*/
if ([[[self path] stringByStandardizingPath]
localizedCompare:[[inURL path] stringByStandardizingPath]] ==
NSOrderedSame) {
return YES;
}
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]