【发布时间】:2025-12-24 12:25:11
【问题描述】:
我试图将 OpenTok getting startedobjective-c 代码翻译成 swift 并且在协议一致性方面出现错误,尽管符合协议。只有在我的类定义中存在OTPublisherDelegate 协议才会创建发生错误的场景。
错误信息是:
ViewController 类型不符合协议'OTPublisherKitDelegate'
但是,至少据我所知,我已经实现了 OTPublisherKitDelegate 中的所有方法。
这是示例代码(为简洁起见,使用空方法)
import UIKit
import OpenTok
class ViewController: UIViewController, OTSessionDelegate, OTSubscriberKitDelegate, OTPublisherDelegate {
//MARK:OTSessionDelegate implementation
func sessionDidConnect(session: OTSession!) { }
func sessionDidDisconnect(session: OTSession!) { }
func session(session: OTSession!, didFailWithError error: OTError!) { }
func session(session: OTSession!, streamCreated stream: OTStream!) { }
func session(session: OTSession!, streamDestroyed stream: OTStream!) { }
//MARK:OTSubscriberKidDelegate implementation
func subscriberDidConnectToStream(subscriber: OTSubscriberKit!) { }
func subscriber(subscriber: OTSubscriberKit!, didFailWithError error: OTError!) { }
//MARK:OTPublisherDelegate implementation
func publisher(publisher: OTPublisherKit!, streamCreated stream: OTStream!) { }
func publisher(publisher: OTPublisherKit!, streamDestroyed stream: OTStream!) { }
func publisher(publisher: OTPublisherKit!, didFailWithError: OTStream!) { }
}
如果我从项目编译的继承协议列表中删除了OTPublisherDelegate。不幸的是,我无法使用 OpenTok 文档(这是很好的文档)找到解决方案。
OpenTok 依赖项通过 CocoaPods 进行管理,并且正在为 OpenTok 库中的所有其他协议进行编译。
【问题讨论】:
标签: ios objective-c swift opentok