2016-07-12 18 views
0

konvertieren NSStringFehler Konvertieren NSString NSURL Xcode 8 Fehlercode 256

dies mein Code NSURL ist, aber ich null Ergebnis

NSString *Mystr = [NSString stringWithFormat:@"http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in (\"USDEUR\")&env=store://datatables.org/alltableswithkeys"]; 




NSURL *URLOne = [[NSURL alloc] initWithString:[Mystr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; 

NSError *error1; 
NSString *strresult = [NSString stringWithContentsOfURL:URLOne 
               encoding:NSASCIIStringEncoding 
                error:&error1]; 


NSLog(@"%@", strresult); 

hier reciving ist mein Fehler

Fehler Domain = NSCocoaErrorDomain Code = 256 "Die Datei" yql "konnte nicht geöffnet werden." Userinfo = {} NSURL=http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDEUR%22)&env=store://datatables.org/alltableswithkeys

Antwort

0

in keiner bestimmten Reihenfolge:

  • stringWithContentsOfURL Die Methode ist nicht vorgesehen zum Abrufen Netzwerk URLs verwendet werden. Sie sollten dafür die API NSURLSession verwenden.
  • Sie können eine URL nicht einfach beliebig URL-encodieren. Ich vermute, dass Sie nur den Inhalt des Parameters q und möglicherweise den Inhalt des Parameters env codieren wollen. Sie müssen diese separat kodieren und dann verketten. Wenn Sie versuchen, die gesamte Zeichenfolge zu codieren, beginnt Ihre URL mit http%3A%2F%2F ....
  • Das ist keine gute Methode zum Codieren von URL-Abfragezeichenfolgedaten. Unter anderem wird es nicht eine Reihe von Sonderzeichen codieren, die in der Abfragekette technisch zulässig sind, aber zu einem Fehlverhalten (z. B. Gleichheitszeichen und Et-Zeichen) führen können. Stattdessen tun:

    NSString *qParameterEncoded = 
        (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(
         kCFAllocatorDefault, 
         (__bridge CFStringRef)qParameter, 
         NULL, 
         CFSTR(":/?#[]@!$&'()*+,;="), 
         kCFStringEncodingUTF8); 
    

    oder die äquivalent tun mit stringByAddingPercentEncodingWithAllowedCharacters: und einem benutzerdefinierten NSCharacterSet.