Просто измените декларацию class SynchronizedArray
и согласуйте Element
с Equatable
, например,
final class SynchronizedArray<Element: Equatable> {
//rest of the code...
}
Это решит вашу первоначальную проблему.
Появится еще одна проблема. говоря, Класс SynchronizedArray не имеет инициализаторов . Это потому, что вы не инициализировали сохраненные свойства из class
. Используйте приведенный ниже код при определении свойств,
var array = [Element]()
private let queue = DispatchQueue.main //Initialize with whatever type of queue you want to use