NSString к NSURL? - PullRequest
       1

NSString к NSURL?

14 голосов
/ 14 ноября 2011

Попытка преобразовать строку в NSURL, но этого не происходит.

barcodeTextLabel.text = foundCode.barcodeString;
urlToGrab = [NSString stringWithFormat:@"%@", foundCode.barcodeString]; // foundCode.barcodeString is an NSString

urlToGrab показывает следующее "error invalid CFStringRef"

Ответы [ 4 ]

41 голосов
/ 14 ноября 2011

Это способ создания NSURL из NSString:

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
1 голос
/ 17 июля 2015

Вы можете использовать следующие для создания пути к файлу URL.

NSURL *yourURL = [NSURL fileURLWithPath:@"/Users/xyz/Desktop/abc.sqlite"];
0 голосов
/ 10 марта 2016

Ответ Свапнали Патиля работает, но я добавлю объяснение.

Вы получите nil, если формат NSString не соответствует критериям файла для NSURL (file:///xxx/file.ext).

Мои потребности были связаны с загрузкой изображения JPG через путь к файлу URL в nsdata; NSURL * u=[[NSURL alloc] initWithString:fpath] вернул ноль, но NSURL *yourURL = [NSURL fileURLWithPath:fpath], как в упомянутом ответе, сработало. URL для файлов будет иметь формат file:///users/xxx/pic.jpg и предоставит доступ к диску. NSURL * u=[[NSURL alloc] initWithString:(NSString*) ] также выдаст объект nil, если nsstring является веб-URL, но если отсутствует http://

0 голосов
/ 15 ноября 2011

Если foundCode.barcodeString - это строка, которую вы хотите использовать в качестве URL, тогда (как и в предыдущем ответе) используйте метод класса NSURL URLWithString:(NSString *).

Ваш код должен выглядеть так:

NSURL urlToGrab = [NSURL URLWithString:foundCode.barcodeString];

Где ваша ошибка входит в игру? Как ваш код, urlToGrab является экземпляром NSString. Я полагаю, что вы получите сообщение об ошибке, как вы описали, если попытаетесь сделать HTTP-запрос на NSString, а не NSURL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...