我有一个NSObject和数组,其中包含有关名人的不同信息。它包括一个维基百科链接,该链接存储在每个名人的字符串中。我有一个按钮,可以打开链接并将用户引导到特定名人的维基百科页面,但并非所有名人都有维基百科页面,在这种情况下我想在按下按钮时显示UIAlertController代替。
我写了一个成功显示UIAlertController的if语句,但是如何打开附加到该人的特定网址链接?
我提出了两个解决这个问题的想法(但我无法让它们发挥作用):
1.所有现有的链接都有相同的开头,#34; https://www.wikipedia.org/wiki/"和没有名字的名人只会有一个空字符串。有没有办法打开链接,如果字符串包含/识别维基百科链接的开头,只显示警告,如果字符串是空的(=根本没有维基百科链接)?
@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.如果字符串中没有维基百科链接(它是空的),是否可以调用警报?用这样的东西?
@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
我不相信这可能是一个如此难以解决的问题,但我刚开始编码所以所有的帮助/想法都会非常感激。
答案 0 :(得分:1)
我假设您的数组包含相同类型的对象。对象包含一个包含url的字符串字段。首先,您应检查该字段是否包含字符串(可能与string.characters.count> 0),而不是尝试使用该字符串创建NSURL,如下所示。
if let wikiURL = NSURL(string: "URL STRING") {
UIApplication.sharedApplication().openURL(wikiURL)
} else {
// Show alert
}