Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 链接到多个网站_Swift_Url_Hyperlink - Fatal编程技术网

Swift 链接到多个网站

Swift 链接到多个网站,swift,url,hyperlink,Swift,Url,Hyperlink,我想创建一个链接,但按下时会从列表中随机选择一个链接。我已经有代码将按钮作为链接,但是如何修改它,以便在不同时间单击时随机添加更多URL 当前链接代码: @IBAction func Website(_ sender: Any) { if let url = NSURL(string: "http:heeeeeeeey.com/"){ UIApplication.shared.openURL(url as URL) } } 尝试

我想创建一个链接,但按下时会从列表中随机选择一个链接。我已经有代码将按钮作为链接,但是如何修改它,以便在不同时间单击时随机添加更多URL

当前链接代码:

@IBAction func Website(_ sender: Any) {

        if let url = NSURL(string: "http:heeeeeeeey.com/"){
            UIApplication.shared.openURL(url as URL)
        }
    }
尝试以下方法:

@IBAction func Website(_ sender: Any) {
   let websites = ["http://website1.com",
                   "http://website2.com",
                   "http://website3.com"]
   if let url = URL(string: websites[Int(arc4random_uniform(UInt32(websites.count)))]) {
      UIApplication.shared.openURL(url as URL)
   }
}
这应该对你有好处

说明:

  • websites
    是一个
    String
    s数组,因此请将希望按钮从中选择的所有URL都放在其中
  • Int(arc4random\u uniform(UInt32(websites.count))
    是在
    0
    websites.count之间选择一个随机数的神奇部分(这是数组中的最后一项)
如果您是Swift(或编程)新手,这听起来可能会让您感到困惑,不要惊慌,继续练习

祝你好运!

试试以下方法:

@IBAction func Website(_ sender: Any) {
   let websites = ["http://website1.com",
                   "http://website2.com",
                   "http://website3.com"]
   if let url = URL(string: websites[Int(arc4random_uniform(UInt32(websites.count)))]) {
      UIApplication.shared.openURL(url as URL)
   }
}
这应该对你有好处

说明:

  • websites
    是一个
    String
    s数组,因此请将希望按钮从中选择的所有URL都放在其中
  • Int(arc4random\u uniform(UInt32(websites.count))
    是在
    0
    websites.count之间选择一个随机数的神奇部分(这是数组中的最后一项)
如果您是Swift(或编程)新手,这听起来可能会让您感到困惑,不要惊慌,继续练习


祝你好运!首先,创建URL字符串数组非常简单:

var urls = [
  "http://www.url1.com",
  "http://www.url2.com",
  "http://www.url3.com"
]
现在,您可以使用以下长代码行获取此URL数组的随机元素:

let randomURL = urls[Int(arc4random_uniform(UInt32(urls.count)))]
但是,另一种方法是向
Array
添加一个适用于所有数组的扩展:

extension Array {
  public var random: Element? {
    let index = Int(arc4random_uniform(UInt32(self.count)))
    return self.count>0 ? self[index] : nil
  }
}
现在,获取URL数组的随机元素非常简单:

urls.random
这将返回一个
可选
(这是因为如果数组中没有元素,random属性将返回
nil
)。因此,在代码中还需要打开
随机
属性的结果:

@IBAction func Website(_ sender: Any) {
  if let urlString = urls.random,
    let url = URL(string: urlString) {
    UIApplication.shared.openURL(url as URL)
  }
}
附:对您的代码有几点意见:

  • 我建议您将
    网站
    重命名为
    openRandomWebsite
    (记住也要更改情节提要连接)。方法应该解释它们的作用,并以小写字母开头。如果您感兴趣,请使用Swift通用代码约定
  • 该方法在iOS 10中已被弃用,因此我建议您使用该方法
您的代码如下所示:

UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
      //URL opened
    })

首先,创建URL字符串数组非常简单:

var urls = [
  "http://www.url1.com",
  "http://www.url2.com",
  "http://www.url3.com"
]
现在,您可以使用以下长代码行获取此URL数组的随机元素:

let randomURL = urls[Int(arc4random_uniform(UInt32(urls.count)))]
但是,另一种方法是向
Array
添加一个适用于所有数组的扩展:

extension Array {
  public var random: Element? {
    let index = Int(arc4random_uniform(UInt32(self.count)))
    return self.count>0 ? self[index] : nil
  }
}
现在,获取URL数组的随机元素非常简单:

urls.random
这将返回一个
可选
(这是因为如果数组中没有元素,random属性将返回
nil
)。因此,在代码中还需要打开
随机
属性的结果:

@IBAction func Website(_ sender: Any) {
  if let urlString = urls.random,
    let url = URL(string: urlString) {
    UIApplication.shared.openURL(url as URL)
  }
}
附:对您的代码有几点意见:

  • 我建议您将
    网站
    重命名为
    openRandomWebsite
    (记住也要更改情节提要连接)。方法应该解释它们的作用,并以小写字母开头。如果您感兴趣,请使用Swift通用代码约定
  • 该方法在iOS 10中已被弃用,因此我建议您使用该方法
您的代码如下所示:

UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
      //URL opened
    })

你为什么在Swift中使用
NSURL
?只需使用
URL
。1)创建一个包含所有URL的数组。2)阅读。很抱歉,我真的很笨,但你能帮我一下吗。我是swift新手,需要帮助。为什么在swift中使用
NSURL
?只需使用
URL
.1)创建一个包含所有URL的数组。2) 阅读。很抱歉我真的很笨,但你能帮我解决一下我该怎么做吗。我是新手,需要帮助。嗨,非常感谢你的帮助!但我在“websites.count”中遇到一个错误,它说它无法将类型“int”的值转换为预期的参数类型“UInt32”?@H.Sunner我的错,完全忘记了类型不匹配。我修复了上面的代码,现在应该可以正常工作了。嗨,非常感谢你的帮助!但我在“websites.count”中遇到一个错误,它说它无法将类型“int”的值转换为预期的参数类型“UInt32”?@H.Sunner我的错,完全忘记了类型不匹配。我修复了上面的代码,现在应该可以正常工作了。您好,我尝试过使用您的方法,但是它出现了一些错误,例如“无法使用实例成员”ur;'在属性初始化器“&类型为“[String]”的错误“value”中没有成员“random”?是否向代码中添加了扩展名
Array
?您使用的是Swift 3/Xcode 8.3吗?您好,我尝试使用您的方法,但出现了一些错误,例如“无法使用实例成员”ur;'在属性初始化器“&类型为“[String]”的错误“value”中没有成员“random”?是否向代码中添加了扩展名
Array
?您使用的是Swift 3/Xcode 8.3吗?