调用相同参数的函数自己的参数(数组)Swift

时间:2018-11-26 07:02:06

标签: arrays swift

我的问题是如此基础。我无法使用如下所示的相同数组参数调用函数。

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”

2 个答案:

答案 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]()