:.!
에 작동
Array
에
let randomURL = urls[Int(arc4random_uniform(UInt32(urls.count)))]
그러나, 당신이 그것을 할 수있는 또 다른 방법은 확장을 추가하는 것입니다 :이 코드의 긴 줄에 배열 된 URL 502,263,210
지금, 당신은 임의의 요소를 얻을 수 모든 배열 : 이제
extension Array {
public var random: Element? {
let index = Int(arc4random_uniform(UInt32(self.count)))
return self.count>0 ? self[index] : nil
}
}
는 URL을 배열의 임의 요소를 얻는 것은 쉽지있는 그대로 :
urls.random
이것은 Optional
을 반환합니다 (배열에 요소가 없으면 random 속성은 nil
을 반환하기 때문입니다).
@IBAction func Website(_ sender: Any) {
if let urlString = urls.random,
let url = URL(string: urlString) {
UIApplication.shared.openURL(url as URL)
}
}
추신 : 그래서 코드에서 당신은 또한 random
속성의 결과 랩을 해제해야합니다 코드에 대한 의견의 몇 :
귀하의 코드는 같을 것이다 : 당신은 스위프트의 'NSURL`을 사용하는 이유는
UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
//URL opened
})
? 그냥'URL'을 사용하십시오. – rmaddy
1) 모든 URL을 사용하여 배열을 만듭니다. 2) http://stackoverflow.com/questions/24003191/pick-a-random-element-from-an-array를 읽으십시오. –
정말 바보 같아서 미안하지만이 일을 어떻게 도와 줄 수 있는지 알려주세요. 나는 신속하고 도움이 필요한 새로운 사람입니다. –