web-dev-qa-db-fra.com

NSString to NSurl

avoir des difficultés à convertir NSSTRING en NSURL, item.image, contient l'URL d'une image qui traverse le xml 

NSString *urlString = [NSString stringWithFormat:@"%@", item.image];
NSURL *url = [NSURL URLWithString:urlString];

NSLog(@"string> %@ ", urlString);
NSLog(@"url> %@ ", url);

2011-06-23 11:18:49.610 Test[10126:207] string> http://www.harlemfur.com/images/Dog_Olive.jpg       
2011-06-23 11:18:49.611 Test[10126:207] url> (null) 

aussi si j'essaye:

NSString *urlString = [NSString stringWithFormat:@"%@", item.image];
NSURL *url = [NSURL fileURLWithPath :urlString];

2011-06-23 11:22:08.063 Test[10199:207] string> http://www.harlemfur.com/images/Dog_Olive.jpg

2011-06-23 11:22:08.064 Test[10199:207] url> %0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20http://www.harlemfur.com/images/Dog_Olive.jpg%0A%20%20%20%20%20%20%20%20%20%20%20%20 -- / 
22
user616860

Lorsque vous faites URL à partir de NSString, n'oubliez pas de l'encoder en premier, essayez ceci:

NSString *urlString = [NSString stringWithFormat:@"%@", item.image];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];  

Pour IOS ≥ 9.0, utilisez  

NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
76
cxa

Tout va bien, si vous voulez obtenir l'URL à imprimer dans NSLog, utilisez ceci:

NSLog(@"url> %@ ", [url absoluteString]);
2
Cyprian

item.image ne contient pas seulement l'URL, mais commence par une nouvelle ligne et des espaces. Supprimez-les en premier et ça devrait aller.

1
Eiko

En rapide: 

NSURL(fileURLWithPath: item.image!)
0
Rutger Huijsmans