NSURL URLWithString: дает ноль

Пожалуйста, посмотрите код ниже:

UIImage *image;
NSString *str = [[[Data getInstance]arrPic]objectAtIndex:rowIndex];
NSLog(str);
NSURL *url = [NSURL URLWithString:str];
NSData *data = [NSData dataWithContentsOfURL:url];
image = [UIImage imageWithData:data];  

str дает мне http://MyDomain/Pics\\1.png, но url дает мне ноль.


person Nitish    schedule 22.02.2012    source источник
comment
Пожалуйста, дайте мне знать, почему голосовали против?   -  person Nitish    schedule 22.02.2012
comment
Да Нитиш, ты прав .. любой скажет, а почему против?   -  person Mehul Mistri    schedule 22.02.2012


Ответы (3)


Просто попробуйте использовать это,

[NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
person Mehul Mistri    schedule 22.02.2012
comment
Это устарело в iOS 9.0. - person Jonny; 10.11.2015
comment
это разбивает URL-адрес, если в нем есть #, преобразовывая # в% 2 - person Ali Saeed; 03.03.2016
comment
попробуйте следующее: [string urlEncodeUsingNSUTF8StringEncoding]; - person Abhishek Thapliyal; 12.08.2016

Из документации URLWithString: методы принимают правильно сформированную строку URL:

Этот метод ожидает, что URLString будет содержать любые необходимые процентные escape-коды, а именно ‘:’, ‘/’, ‘%’, ‘#’, ‘;’ и ‘@’. Обратите внимание, что escape-символы «%» переводятся через UTF-8.

Я предлагаю вам повторить то же самое, используя метод NSString (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding; ранее.

person Community    schedule 22.02.2012

Начиная с iOS9, stringByAddingPercentEscapesUsingEncoding устарел. Чтобы безопасно избежать строки URL, используйте:

NSMutableCharacterSet *alphaNumSymbols = [NSMutableCharacterSet characterSetWithCharactersInString:@"~!@#$&*()-_+=[]:;',/?."];
[alphaNumSymbols formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];

str = [str stringByAddingPercentEncodingWithAllowedCharacters:alphaNumSymbols];

Это создает наборы символов, которые нужно оставить как есть, и запрашивает преобразование всего, что не входит в эти наборы символов, в значения, закодированные в процентах.

person Ali Saeed    schedule 03.03.2016