2016-07-01 8 views
0

Ich habe ein NSObject und Array mit verschiedenen Informationen über Prominente. Es enthält einen Wikipedia-Link, der in einer Zeichenfolge für jeden Prominenten gespeichert ist. Ich habe eine Schaltfläche, die den Link öffnen soll und den Benutzer auf die Wikipedia-Seite des berühmten Prominenten führen soll, aber nicht alle Prominenten haben eine Wikipedia-Seite und in diesem Fall würde ich gerne einen UIAlertController zeigen, wenn die Schaltfläche stattdessen gedrückt wird.Öffnen Sie verschiedene Links mit dem gleichen Anfang

Ich habe eine if-Anweisung geschrieben, die erfolgreich einen UIAlertController zeigt, aber wie öffne ich den spezifischen URL-Link, der der Person angehängt ist?

Ich habe mit zwei Ideen kommen diese zu lösen (Aber ich kann sie nicht bekommen kann arbeiten):

1.Alle bestehenden Verbindungen den gleichen Anfang, „https://www.wikipedia.org/wiki/“ und den Prominenten, die don Wenn Sie einen haben, haben Sie einfach eine leere Zeichenfolge. Gibt es eine Möglichkeit, den Link zu öffnen, wenn der String den Anfang des Wikipedia-Links enthält/erkennt und den Alarm nur anzeigt, wenn der String leer ist (= überhaupt kein Wikipedia-Link)?

@IBAction func ReadMoreTapped(sender: AnyObject) { 

    //The celebrity's wikipedia link is stored in the "WikiSegue" 
    if WikiSegue == "https://www.wikipedia.org/wiki/..." { 

    UIApplication.sharedApplication().openURL(NSURL(string : WikiSegue)!) 

} else { 

    //Show "missing wikipedia page" alert 

    } 

} //End of ReadMoreTapped button 

2.Or ist es möglich, den Alarm zu rufen, wenn es keine Wikipedia-Link innerhalb der Zeichenfolge ist (es leer ist)? Verwenden Sie so etwas?

@IBAction func ReadMoreTapped(sender: AnyObject) { 

    //The wikipedia link is stored in the "WikiSegue" 
    if WikiSegue.isEmpty == true { 

    //Show "missing wikipedia page" alert 

} else { 

UIApplication.sharedApplication().openURL(NSURL(string : WikiSegue)!) 

    } 

} //End of ReadMoreTapped button 

Ich glaube nicht, dass dies so schwer fix sein kann, aber ich bin gerade erst mit Codierung, so jede Hilfe/Ideen sehr geschätzt würden.

Antwort

1

Ich nehme an, dass Ihr Array die gleiche Art von Objekten enthält. Und Objekte enthalten ein Zeichenfolgenfeld mit der URL. Zuerst sollten Sie prüfen, ob dieses Feld die Zeichenfolge enthält (vielleicht mit string.characters.count> 0), als versuchen, NSURL mit dieser Zeichenfolge wie unten zu erstellen.

if let wikiURL = NSURL(string: "URL STRING") { 
    UIApplication.sharedApplication().openURL(wikiURL) 
} else { 
    // Show alert 
} 
+0

Ich habe die string.character.count -> hat perfekt funktioniert! Vielen Dank! – Mate

Verwandte Themen