【问题标题】:Function calling same parameter own parameters(Array) Swift调用相同参数的函数自己的参数(数组)Swift
【发布时间】:2018-11-26 07:02:05
【问题描述】:

我的问题太简单了。我无法调用具有相同数组参数的函数,如下所示。

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”

【问题讨论】:

标签: arrays swift


【解决方案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)
}

【讨论】:

    【解决方案2】:

    你可以像下面这样更新这一行。

    var myArray: [String] = [String]()
    

    【讨论】:

    • 虽然这段代码可能会解决问题,但一个好的答案应该始终解释问题是什么以及这段代码如何提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多