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
опитайте това: [низ urlEncodeUsingNSUTF8StringEncoding]; - person Abhishek Thapliyal; 12.08.2016

От документацията методите URLWithString: вземат добре оформен URL низ:

Този метод очаква URLString да съдържа всички необходими кодове за избягване на процента, които са „:“, „/“, „%“, „#“, „;“ и „@“. Обърнете внимание, че екранирането на „%“ се превежда чрез UTF-8.

Предлагам ви да опитате отново същото, като използвате метода (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding; на NSString преди.

person Community    schedule 22.02.2012

От iOS9 stringByAddingPercentEscapesUsingEncoding е отхвърлен. За безопасно екраниране на URL низ, използвайте:

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

str = [str stringByAddingPercentEncodingWithAllowedCharacters:alphaNumSymbols];

Това създава набори от знаци, които да се запазят такива, каквито са, и иска всичко извън тези CharacterSets да бъде преобразувано в %% процентно кодирани стойности.

person Ali Saeed    schedule 03.03.2016