我正在尝试使用协议将数组从一个类传递到另一个。

protocol PinsArray {
var dataArray: [LocationPost] {get set}
}

当我尝试在类中创建一个委托时,该委托将无法正常工作。我无法访问该物业
var delegate = PinsArray.self

像这样:
delegate.dataArray

它说“实例成员'dataArray'不能在类型PinArray上使用”

那我该怎么办呢?

最佳答案

您将PinsArray类型分配给delegate,而不是分配符合PinsArray的类的实例。您将需要实现一个符合PinsArray的类,并为该类分配一个实例。请参见以下示例:

class SomeClass: PinsArray {
    var dataArray: [LocationPost]
    // ...
}

您将使用上面的类来创建符合PinsArray的对象的实例。
var delegate = SomeClass()

然后,您可以使用:
delegate.dataArray

10-08 12:11