Ответ 1
Согласно RFC 2616, http://google.com
и http://google.com/
эквивалентны. Вот что он говорит (раздел 3.2.3):
При сравнении двух URI, чтобы решить, соответствуют ли они или нет, клиенту СЛЕДУЕТ использовать сопоставление всех октетов по октету по октету с учетом этих случаев:
Порт, который пуст или не указан, эквивалентен порту по умолчанию для этой URI-ссылки;
Сравнение имен хостов ДОЛЖНЫ быть нечувствительными к регистру,
Сравнение имен схем ДОЛЖНО быть нечувствительным к регистру,
Пустой abs_path эквивалентен абс_путу "/".
Для справки синтаксис задается как http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
К сожалению, NSURL
должен поддерживать схемы, отличные от HTTP, поэтому он не может сделать предположение, что RFC 2616 предоставляет общее правило. Я считаю, что ваше лучшее исправление заключается в создании категории с помощью собственного метода сравнения для http-URL, который специально проверяет пустой абсолютный путь.