我的问题是如此基础。我无法使用如下所示的相同数组参数调用函数。
import UIKit
var myArray = [String]() // <= This line from one class
func myArrayFunc1(arg_myArray: String...) { . //This function from same class with array
myArray = arg_myArray
}
func myArrayFunc2(arg2_myArray: String...) { //This function from another class
myArrayFunc1(arg_myArray: arg2_myArray) // <= This line gives error
}
我的错误是: 无法将类型“ [String]”的值转换为预期的参数类型“ String”
答案 0 :(得分:1)
您不能将arg_myArray
分配为myArray
,因为arg_myArray
不是字符串数组,而只是单个字符串。
如果您需要将新数组分配为myArray
,请替换以下内容:
func myArrayFunc1(arg_myArray: String...) {
myArray = arg_myArray
}
func myArrayFunc2(arg2_myArray: String...) {
myArrayFunc1(arg_myArray: arg2_myArray)
}
使用
func myArrayFunc1(arg_myArray: [String]) {
myArray = arg_myArray
}
func myArrayFunc2(arg2_myArray: [String]) {
myArrayFunc1(arg_myArray: arg2_myArray)
}
但是,如果您只需要在字符串数组中添加单个字符串,则可以使用myArray.append(/* string */)
将新对象(在您的情况下为字符串值)附加到数组中
func myArrayFunc1(arg_myArray: String) {
myArray.append(arg_myArray)
}
func myArrayFunc2(arg2_myArray: String) {
myArrayFunc1(arg_myArray: arg2_myArray)
}
答案 1 :(得分:0)
您可以按如下所示更新此行。
var myArray: [String] = [String]()