Функция, вызывающая тот же параметр, собственные параметры (Array) Swift - PullRequest
0 голосов
/ 26 ноября 2018

Мой вопрос такой простой. Я не могу вызвать функцию с тем же параметром массива, как показано ниже.

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]' в ожидаемый тип аргумента 'Строка '

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Вы можете обновить эту строку, как показано ниже.

var myArray: [String] = [String]()
0 голосов
/ 26 ноября 2018

Вы не можете назначить 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)
}
...