Frage

Ich habe eine Textdatei mit 5 Zeichenfolgen.Ich muss NSURLConnection verwenden, um den Inhalt dieser Datei abzurufen.Aber NSLog zeigt mir, dass dieser „Dump“ leer ist.Wie kann ich die Daten von NSMutableData in NSArray umwandeln?Arrays liegt daran, dass ich diese 5 Elemente in einer TableView anzeigen muss.

NSURLRequest *theRequest=[NSURLRequest
                         requestWithURL:[NSURL URLWithString:@"http://dl.dropbox.com/u/25105800/names.txt"]
                         cachePolicy:NSURLRequestUseProtocolCachePolicy
                         timeoutInterval:60.0];

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    receivedData = [NSMutableData data];
    NSString *dump = [[NSString alloc] initWithData:receivedData
                         encoding:NSUTF8StringEncoding];
    NSLog(@"data: %@", dump);
    NSArray *outputArray=[dump componentsSeparatedByString:@"\n"];
    self.namesArray = outputArray;

Dank im Voraus.Übrigens funktioniert die URL, Sie können die Datei sehen.

War es hilfreich?

Lösung

Wenn Sie einen Delegierten nicht verwenden möchten, können Sie einen synchronen Anruf mit nsurlconnection verwenden, wie folgt: generasacodicetagpre.

Hüten Sie sich nur auf, dass dies nicht asynchron ausgeführt wird.Wenn Sie nicht möchten, dass es auf dem Hauptfaden ausgeführt wird, und blockieren Sie Ihren Hauptgewinde / UI, überlegen Sie die Verwendung eines separaten Threads, um diesen Code auszuführen oder GCD verwenden zu können.

Andere Tipps

Hier können Sie diese Lösung mit einem Delegierten umsetzen:

in Ihrer .h-Datei: generasacodicetagpre.

In you .m-Datei: generasacodicetagpre.

Sie müssen den Delegaten verwenden, dann speichern Sie die empfangenen Daten in empfangeneDaten (die gerade nicht leer ist..Schauen Sie sich den generakodicetagcode an

Sie müssen die Delegate-Methoden implementieren, damit NSURLConnection über eingehende Daten benachrichtigt wird.Sie verwenden die asynchronen Methoden.

Beachten Sie das auch [NSMutableData data] Erstellt einfach ein leeres Datenobjekt.Sie können also nicht erwarten, dass es irgendwelche Daten enthält.

Ich empfehle Ihnen, es zu lesen https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid/20001836-BAJEAIEE(vollständig!)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top