一尘不染

swift属性的未知类型名称

swift

我有一个用swift编写的CustomViewController类和用Objective
C编写的CustomNavigationController类。我试图将CustomNavigationController作为属性添加到我的CustomViewController中。我已经添加#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’吗?”

有谁知道为什么它不能识别类型?


阅读 276

收藏
2020-07-07

共1个答案

一尘不染

在Objective-C代码中,您将导入自动生成的-Swift.h标头。在同一行中的该行 之前#import,插入#import "CustomNavigationController.h"。这两个#import语句的顺序至关重要!

通过确保CustomNavigationController在自动生成的-Swift.h标头之前的名称空间中,可以解决该问题,因此后者将了解前者,并且一切都会很好。

如果那个Objective-
C类不需要了解CustomNavigationController,这将很烦人,但是它解决了前进的问题,并允许您继续使用混合项目。

2020-07-07