我有一个混合项目,同时使用 Objective-C 和 Swift 。
使用Cocoapods我导入一个框架,里面有一个名为User
的类。但在我自己的项目中,我还有一个名为User
的Objective-C类。
在我的Swift文件中,我想使用Objective-C User
类,但也导入Cocoapod Swift框架。
我的User
类是在Bridging Header文件中导入的,但是我收到了这个错误:
'User' is ambiguous for type lookup in this context
在这行代码上:
let user = DTKSession.getShared().user as! User
当我搜索此错误时,我找不到任何与我的情况有关的内容,但我认为它可能是名称空间冲突的问题,因为在导入具有其他User类的Swift框架之后,这个问题就开始了。 / p>
我读过如果我想指定Framework类,我可以编写FrameWorkName.User
,但我找不到如何在桥接头上指定类。
我该怎么办?
答案 0 :(得分:2)
尝试命名空间User
类。它看起来像这样:
// use the class from different frameworks
let user1 = Framework1.User()
let user2 = Framework2.User()
// use the class from the main project
let user4 = User()
let user3 = MyProject.User() // also works like this, if you want to be explicit. Here MyProject is the product module name
尝试使用第四个选项。
否则,最简单的方法是重命名您的objective-c User
类。