在Swift类中访问协议属性

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

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 

我用一个拼写错误宣告代表,它应该是这样的:

 var delegate: PinsArray?