Frage

Ich habe folgenden Code in meiner Anwendung.

NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]];

pathOfThumbNail hat folgenden Pfad


http://70.84.58.40/projects/igolf/TipThumb/GOLF 58B .jpg


Als ich oben Pfad in Safari-Browser öffnen -. Pfad wird automatisch geändert & Bild erfolgreich angezeigt

http://70.84.58.40/projects/igolf/TipThumb/GOLF% 2058B.jpg


Aber in iPhone, aufgrund Raum in Pfad, wird das Bild nicht in NSData geladen.

War es hilfreich?

Lösung

Verwendung: stringByAddingPercentEscapesUsingEncoding:

Gibt eine Darstellung des Empfängers einen bestimmten Codierung den Prozentsatz zu bestimmen, entkommt notwendig, den Empfänger in eine rechtliche URL-Zeichenfolge zu konvertieren.

-(NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

Eine Darstellung des Empfängers Codierung den Prozentsatz zu bestimmen, entkommt notwendig, den Empfänger in eine rechtliche URL-Zeichenfolge zu konvertieren. Gibt nil zurück, wenn Codierung kann nicht ein bestimmtes Zeichen kodieren

Hinzugefügt pro Anfrage von @rule

NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
NSLog(@"urlText:        '%@'", urlText);
NSLog(@"urlTextEscaped: '%@'", urlTextEscaped);
NSLog(@"url:            '%@'", url);

NSLog Ausgabe:

urlText:        '70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg'  
urlTextEscaped: '70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'  
url:            '70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'  

Andere Tipps

Ein schneller 3.0-Ansatz (stringByAddingPercentEscapesUsingEncoding und stringByAddingPercentEncodingWithAllowedCharacters scheinen jetzt veraltet):

let urlString ="your/url/".addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)

stringByAddingPercentEscapesUsingEncoding hat in iOS 9.0 veraltet, es wird empfohlen, Sie stringByAddingPercentEncodingWithAllowedCharacters anstelle.

Hier ist der Objective-C-Code für> iOS 9.0

NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
enter code here

NSLog(@"urlText:        '%@'", urlText);
NSLog(@"urlTextEscaped: '%@'", urlTextEscaped);
NSLog(@"url:            '%@'", url);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top