在swift中返回随机字典项

时间:2014-11-10 20:15:07

标签: ios ios7 swift io tuples

我试图返回一个随机名称,此功能的随机电子邮件到目前为止,但我想知道我应该在这里返回什么,因为我想要返回它需要的元组我需要从函数

中随机选择2个字符串值
func randomAuthor () -> (name : String, email : String) {

    struct Author {

        var name : String
        var email : String

    }

    let firstAuthor = Author(name: "jon", email: "jonsEmail")
    let secondAuthor = Author(name: "richard", email: "richardsEmail")
    let thirdAuthor = Author(name: "steve", email: "stevesEmail")
    let fourthAuthor = Author(name: "simon", email: "simonsEmail")
    let fifthAtouh = Author(name: "wes", email: "wesEmail")

    var dictionary = [firstAuthor.name : firstAuthor.email, secondAuthor.name : secondAuthor.email, thirdAuthor.name : thirdAuthor.email, fourthAuthor.name : fourthAuthor.email, fifthAuthor.name : fithAtouh.email]

    var unsignedDictionaryCount = UInt32(dictionary.count)
    var unsignedRandom = arc4random_uniform(unsignedDictionaryCount)
    var random = unsignedRandom


    return()

}

任何帮助表示赞赏 感谢

2 个答案:

答案 0 :(得分:3)

字典中的随机值分几步:

  1. 创建词典
  2. 使用Int
  3. 随机arc4random_uniform
  4. 使用此随机Int获取随机密钥(使用keys),并获取其值
  5. 归还他们,你就完蛋了!

    var dictionary : [String:String] =  [firstAuthor.name : firstAuthor.email, secondAuthor.name : secondAuthor.email, thirdAuthor.name : thirdAuthor.email, fourthAuthor.name : fourthAuthor.email]
    let index: Int = Int(arc4random_uniform(UInt32(dictionary.count)))
    let value = Array(dictionary.values)[index]
    let key = Array(dictionary.keys)[index]
    let value = dictionary[key]
    return (key, value!)
    

答案 1 :(得分:1)

使用随机整数作为dictionary.keys的索引。这会获取您可以用来查找name。{/ p>的email