Массив из Geneiric`ов

Запутался с Дженеривками ... Ниже привожу пример кода (врезал только существенное для плейграунда):

 import UIKit

protocol MyElement_Protocol {
    associatedtype myType
    var value: myType! { get }
}

class MyAbstractClass<myType>: MyElement_Protocol {
    var value: myType!
}

class MyFirstClass : MyAbstractClass<Int> {

}

class MySecondClass : MyAbstractClass<[MyAbstractClass<Any>]> {
    func loadFromFile() {
        value.append(MyFirstClass())

    }

}

У меня есть протокол (MyElement_Protocol ), который определяет функционал некоторых классов ... далее я делаю MyAbstractClass, в котором реализую "общий" функционал для всех объектов. Далее вне нужно сделать несколько классов , часть из которых базируются на простых типах типа String или Int (в примере MyFirstCLass) и часть является массивом самих этих объектов в примере MySecondClass : MyAbstractClass<[MyAbstractClass]> ...

в функции value.append(MyFirstClass()) xCode выдает ошибку

Cannot convert value of type 'MyAbstractClass' to expected argument type 'MyAbstractClass'

Как правильно записать этот кусок кода?


Ответы (1 шт):

Автор решения: schmidt9

Попробуйте так

class MySecondClass : MyAbstractClass<[MyElement_Protocol]> {
    func loadFromFile() {
        value = []
        value.append(MyFirstClass())
    }
}
→ Ссылка