【发布时间】:2026-02-20 05:50:02
【问题描述】:
我有一个称为订阅者的数组,它存储符合 JABPanelChangeSubscriber 协议的对象。协议声明为
public protocol JABPanelChangeSubscriber {
}
我的数组被声明为:
var subscribers = [JABPanelChangeSubscriber]()
现在我需要实现一个方法来将订阅者添加到列表中,但它首先必须检查该订阅者之前是否尚未添加。
public func addSubscriber(subscriber: JABPanelChangeSubscriber) {
if subscribers.find(subscriber) == nil { // This ensures that the subscriber has never been added before
subscribers.append(subscriber)
}
}
不幸的是,JABPanelChangeSubscriber 不是 Equatable,我不知道如何使它 Equatable,所以 find 方法给了我一个错误。任何人都可以帮助我解决问题或提出不同方法的建议吗?
谢谢
【问题讨论】:
-
你为什么使用
subscribers.find()?除非你为Array写了一个扩展,否则我认为默认的Array没有find()方法。
标签: arrays xcode swift protocols iequatable