Я предполагаю, что по URL вы ссылаетесь на строку, определяющую местоположение интернет-ресурса.
Если у вас есть представление о формате входной строки, то почему бы не проверить вручную, начинается ли строка с http://
, https://
или любой другой схемы, которая вам нужна.Если вы ожидаете другие протоколы, вы также можете добавить их в контрольный список (например, ftp://
, mailto://
и т. Д.)
if ([myString hasPrefix:@"http://"] || [myString hasPrefix:@"https://"])
{
// do something
}
Если вы ищете более твердое решение и обнаруживаете любые видыСхема URL, тогда вам следует использовать регулярное выражение.
В качестве примечания, класс NSURL предназначен для выражения любого вида расположения ресурсов (не только интернет-ресурсов).Вот почему строки типа img/demo.jpg
или file://bla/bla/bla/demo.jpg
могут быть преобразованы в объекты NSURL.
Однако согласно документации [NSURL URLWithString]
должен возвращать nil, если входная строка не является допустимой строкой интернет-ресурса,На практике это не так.