将字典项作为参数传递

pass a dictionary item as a parameter

在我下面的 swift 代码中,目标是将字典项作为参数传递。如果它是一个字符串,这似乎会起作用,但因为我试图从字典中传递一个项目,所以它不起作用。我正在从视图传递到另一个函数。

var girlsName = ["a": "Jessica Biel", "b": "Gwen Stefani","c":"Jessica Alba" ]

           override func viewDidLoad() {
    super.viewDidLoad()
    let index: Int = Int(arc4random_uniform(UInt32(girlsName.count)))
    let randomVal = Array(girlsName.values)[index]
    let randomVal2 = Array(girlsName.keys)[index]
   
   
    
}
@objc func submite( randomVal){

    print(randomVal)
  
    

    
}

您可以像这样将字典作为参数传递:

func submit(dict: [String: String]){
    print(dict)
}
  • 说的通俗易懂,不能给@objc函数传参

  • 传递参数,应该使用func而不是@objc func。

    func submit(dict: [String: String]) { 打印(字典) }

或者如果你想传递一个字符串作为参数:

func submit(aString: String) {
   print(aString)
}

我不确定您想传递给其他函数的确切内容,但您应该使用函数 randomElement()

girlsName.randomElement() // a random key/value pair

girlsName.keys.randomElement() // a random key

girlsName.values.randomElement() // a random value

所以如果你想传递一个名称(值),它可能看起来像

submite(randomVal: girlsName.values.randomElement() ?? "")

如果 submite 声明为

func submite(randomVal: String)