2017-02-11 5 views
0

Ich arbeite an Ios und Swift 3 und ich möchte HTML-Code analysieren. Bisher Hpple haben den Trick für mich mit diesem Code:Get HTML von Abfrage-URL (index.php? [Argumente]) Swift 3 ios

func parse_Html_Text(url:String) 
{ 
    let data = NSData(contentsOf: URL(string: url)!) 
    let doc = TFHpple(htmlData: data! as Data!) 
} 

Aber wenn ich versuche, HTML-Code aus einer Abfrage url (wie diese: link) zu bekommen, dann meine App abstürzt und ich bekommen Thread1: EXC_BAD_INSTRUCTION Fehler in dieser Zeile:

let doc = TFHpple(htmlData: data! as Data!) 

I Alamofire Antrag Methode auch versucht, aber ich habe nicht gelingt, es

funktioniert ich bin stucked zwei Tage damit, damit jede Hilfe geschätzt wird.

Vielen Dank im Voraus!

Antwort

0

ich bemerkt, dass Sie Swift verwenden 3. Wahrscheinlich die Bibliothek erwartet ein NSData Objekt, aber ich würde vorschlagen, Ihre Funktion wie die folgende schreiben:

func parse_Html_Text(url: String) { 
    if let safeUrl = URL(string: url) { 
     let data = try? Data(contentsOf: safeUrl) 
     let doc = TFHpple(htmlData: data as? NSData) 
    } 
} 

In diesem Fall beachten Sie, dass wir nicht möglich sind Handling Fehler vom Datensetter.

+0

Vielen Dank für Ihre Antwort! Der Code gibt mir einen Fehler: Kann Wert vom Typ "NSData?" zum erwarteten Argumenttyp 'Data!' in Zeile: Lassen Sie doc = TFHpple (htmlData: Daten als? NSData) Xcode vorschlagen hinzuzufügen: als Daten! Am Ende aber, selbst wenn es so gebaut wird, gibt es leeres doc zurück und es kann nicht geparst werden –