我正在尝试集成 oovoosdk进入一个新的 Swift 项目。 oovoosdk 是一个用 Objective-C 编写的框架。我创建了一个桥接 header ,它似乎可以正常工作,因为我可以在 AppDelegate 中调用它并返回结果(ooVooController 是构成框架一部分的接口(interface)):
let result = ooVooController.sharedController().initSdk(kDefaultAppId, applicationToken: kDefaultAppToken, baseUrl: "https://api-sdk.dev.oovoo.com")
问题是,当我在 AppDelegate 之外复制相同的代码时,项目无法编译。我收到警告“使用未解析的标识符 ooVooController”。据我了解,使用桥接 header 导入的类在全局范围内可用,但似乎存在某种可见性问题?
郑重声明,我不想两次初始化Sdk,这只是一个例子。
编辑:以下代码遇到同样的问题“使用未解析的标识符 ooVooVideoView”:
let myCompletelyUniqueViewName = ooVooVideoView(frame: self.view.frame)
代码完成工作正常。我尝试显式添加类类型:
let myCompletelyUniqueViewName:ooVooVideoView = ooVooVideoView(frame: self.view.frame)
并得到“使用未声明的类型 ooVooVideoView”。
最佳答案
我最终设法解决了这个问题。受影响的 View Controller 具有我的测试套件的目标成员资格(在文件检查器下找到),但没有配置桥接 header 。删除此成员后,我的项目编译并运行。
关于swift - 在 Swift AppDelegate 之外不可见的 Objective-C 框架类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27145476/