首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swift获取Quote及其作者

使用Swift获取Quote及其作者
EN

Stack Overflow用户
提问于 2015-08-02 06:39:24
回答 1查看 195关注 0票数 0

我对Swift非常陌生,我正在尝试用引号制作一个应用程序,但是我想把Quote和它自己的作者都显示在一个单独的UILabel中。但是我不知道如何做到这一点,因为我有一个randomQuote函数,它为我的数组返回一个随机索引,但是数组只显示引号,我想得到一个随机引号,并得到引号的作者。

以下是我迄今所做的工作:

代码语言:javascript
复制
   var quotes = ["'Stay Hungry, Stay Foolish.'", "'Life is what happens while you are busy making other plans.'", ""]

var authors = ["Steve Jobs", "John Lennon"]



func getRandomQuote() -> String{
    //get random index
    var arrayCount = UInt32(quotes.count)
    var randomNumber = arc4random_uniform(arrayCount)
    var finalNumber = Int(randomNumber)

    return quotes[finalNumber]
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    var randomImage: String = imageChange[randomNumber]
    self.motivationText.text = getRandomQuote()
    self.imageInspire.image = UIImage(named: randomImage)
}

我在考虑用字典,但我认为它行不通。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-02 06:45:51

如果作者和引号总是按相同的顺序排列,则可以对引号和作者数组使用相同的finalNumber。

您可以在getRandomQuote中设置两个标签并删除字符串返回,然后可以从viewDidLoad调用它。

字典可以工作,出于随机原因,您可以将它的键视为数组,然后使用键/值对填充标签。

如果引号和作者总是按照相同的顺序排列,那么示例:

代码语言:javascript
复制
func getRandomQuote() {
//get random index
var arrayCount = UInt32(quotes.count)
var randomNumber = arc4random_uniform(arrayCount)
var finalNumber = Int(randomNumber)

self.motivationText.text = quotes[finalNumber]
self.authorName.text = authors[finalNumber] // Just an assumption on label name

}

override func viewDidLoad() {
    super.viewDidLoad()

    getRandomQuote()

}

字典示例:

代码语言:javascript
复制
let quotesWithAuthors = ["Steve Jobs":"Stay Hungry, Stay Foolish","Alan Kay":"Simple things should be simple, complex things should be possible","Bill Gates":"I'm not fake Steve Jobs"]

let authorsArray = quotesWithAuthors.keys.array

let randomQuoteKeyIndex = Int(arc4random_uniform(UInt32(authorsArray.count - 1)))

self.authorName.text    = authorsArray[randomQuoteKeyIndex]
self.otivationText.text = quotesWithAuthors[authorsArray[randomQuoteKeyIndex]]

本质上,从执行的角度来看,它们非常相似,但可能更容易以这种方式存储。虽然您可能会遇到问题,如果您有多个引号从同一个作者使用一个作者的名字作为字典-在这种情况下,您可能想翻转作者&引号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31769236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档