我有一个混合项目,它同时使用 Objective-C 和 Swift 。
使用Cocoapods,我导入了一个框架,其中包含一个名为User
的类。但是在我自己的项目中,我还有一个名为User
的Objective-C类。
在我的Swift文件中,我想使用Objective-C User
类,但也要导入Cocoapod Swift框架。
我的User
类已导入桥接头文件中,但是出现此错误:
'User' is ambiguous for type lookup in this context
在这行代码上:
let user = DTKSession.getShared().user as! User
当我搜索此错误时,找不到与我的情况有关的任何内容,但我认为可能与名称空间冲突有关,因为此问题是在导入具有另一个User类的Swift Framework之后开始的。
我读到如果要指定Framework类,可以编写
FrameWorkName.User
,但是找不到在桥接头上指定类的方法。我能做什么?
最佳答案
尝试命名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
类。关于ios - 使用Swift和Objective-C桥接标题和框架时发生命名空间冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42954183/