将字典项作为参数传递
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)
在我下面的 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)