我有一个用swift编写的CustomViewController类和用Objective C编写的CustomNavigationController类。我试图将CustomNavigationController作为属性添加到我的CustomViewController中。我已经添加#import "CustomNavigationController.h"到我的桥接头中。
#import "CustomNavigationController.h"
在我的CustomViewController中,我有:
class CustomViewController: UIViewController { var navController: CustomNavigationController? ... //init methods ... override func viewDidLoad() { super.viewDidLoad() //Set up Navigation Controller navController = self.storyboard.instantiateViewControllerWithIdentifier("CustomNavigationController") as CustomNavigationController! }
在尝试构建并运行之前没有任何错误…我得到“未知类型名称’CustomNavigationController’;您是说’UINavigationController’吗?”
有谁知道为什么它不能识别类型?
在Objective-C代码中,您将导入自动生成的-Swift.h标头。在同一行中的该行 之前#import,插入#import "CustomNavigationController.h"。这两个#import语句的顺序至关重要!
-Swift.h
#import
通过确保CustomNavigationController在自动生成的-Swift.h标头之前的名称空间中,可以解决该问题,因此后者将了解前者,并且一切都会很好。
如果那个Objective- C类不需要了解CustomNavigationController,这将很烦人,但是它解决了前进的问题,并允许您继续使用混合项目。