Возврат / передача нового массива в функцию (Swift 5) - PullRequest
0 голосов
/ 09 апреля 2019

В Java, например, вы можете сделать что-то вроде этого:

myFunction(new MyClass[]{myclass1, myclass2, myclass3})

Есть ли эквивалент в Swift?

Я пробовал

myFunction([MyClass](myclass1,myclass2,myclass3))

, и Xcode предложилизмените его на

myFunction([MyClass](arrayLiteral: myclass1,myclass2,myclass3))

, но документальный фильм ( click ) говорит вам не вызывать "arrayLiteral" напрямую.

Редактировать: Причинапочему я хочу сделать это немного сложно:

У меня есть класс MyClass и я создал несколько экземпляров, которые переносят данные: myclass1, myclass2, myclass3

init(name na:String, number nu:Int, content c:String) {....}

Эти экземпляры я хочу добавить в массив, который затем использую для создания экземпляра второго класса MyOtherClass:

init(name n:String, someotherinfo s:String, myclassarray m:[MyClass]) {....}

Создание экземпляра:

var myotherclassthing = MyOtherClass(name:"Test", someotherinfo:"Bla", myclassarray: ??????????)

Этот экземпляр MyOtherClass Затем я перехожу из моего основного вида во второй вид через переход.

1 Ответ

2 голосов
/ 09 апреля 2019

Это должно работать

myFunction(["a","b","c"])

Это работает одинаково хорошо, если вы хотите вернуть массив из func

func test() -> [String] {
    return ["a", "b"]
}

И он одинаково хорошо работает с пользовательским классом

MyOtherClass(name:"Test", someotherinfo:"Bla", 
             myclassarray: [MyClass(name: "A", number: 1, content: "AAA"), 
                            MyClass(name: "B", number: 2, content: "BBB")])
...