Swift 链接到多个网站
我想创建一个链接,但按下时会从列表中随机选择一个链接。我已经有代码将按钮作为链接,但是如何修改它,以便在不同时间单击时随机添加更多URL 当前链接代码: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) } } 尝试
@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
s数组,因此请将希望按钮从中选择的所有URL都放在其中String
是在Int(arc4random\u uniform(UInt32(websites.count))
和0
websites.count之间选择一个随机数的神奇部分(这是数组中的最后一项)
@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
s数组,因此请将希望按钮从中选择的所有URL都放在其中String
是在Int(arc4random\u uniform(UInt32(websites.count))
和0
websites.count之间选择一个随机数的神奇部分(这是数组中的最后一项)
祝你好运!首先,创建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)
}
}
附:对您的代码有几点意见:
- 我建议您将
重命名为网站
(记住也要更改情节提要连接)。方法应该解释它们的作用,并以小写字母开头。如果您感兴趣,请使用Swift通用代码约定openRandomWebsite
- 该方法在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)
}
}
附:对您的代码有几点意见:
- 我建议您将
重命名为网站
(记住也要更改情节提要连接)。方法应该解释它们的作用,并以小写字母开头。如果您感兴趣,请使用Swift通用代码约定openRandomWebsite
- 该方法在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吗?