我有一个引号类,其中包含一个充满引号的数组。下面的代码显示了两个。每个引用都包含hasSeen
和hasSaved
的作者,归属和Bools。
我想一次显示一个随机引用。当用户刷新屏幕时,他们会得到另一个报价。当我将.randomElement()!
放在数组上并打印结果时,我得到appName.Quote
。
有没有办法从这个数组中访问随机引用?我希望能够向最终用户显示文本和归属。
var quotes:[Quote] = [
Quote(
quoteText: "The only way to make sense out of change is to plunge into it, move with it, and join the dance.",
quoteAttribution: "Alan Watts",
hasSeen: false,
hasSaved: false),
Quote(
quoteText: "Luck is what happens when preparation meets opportunity.",
quoteAttribution: "Seneca",
hasSeen: false,
hasSaved: false)
]
答案 0 :(得分:1)
您可以扩展swift的数组以获得此功能:
extension Array {
func randomItem() -> Element? {
if isEmpty { return nil }
let index = Int(arc4random_uniform(UInt32(self.count)))
return self[index]
}
}
你可以像这样访问随机引用:
let quote = quotes.randomItem()
另一方面,由于您正在处理固定/ staitc内容/结构,请考虑使用tuple来存储引用