在自动生成的Swift桥接头中找不到“接口声明”

时间:2015-09-07 23:47:41

标签: objective-c xcode swift

我当前的项目包含Swift和Objective-C代码。两种类型的源文件都使用其他语言的代码。 当我完全清理并重新编译时,我在Module-Swift.h中的几乎所有Swift类声明中都会出现错误,其格式为:

Cannot find interface declaration for 'UIViewController', superclass of 'CustomViewController'

我的症状类似于this question,与this question类似。换句话说:

  • Module-Bridging_Header.h导入我的Objective-C标头Class.h
  • 实施文件Class.m导入Swift标头Module-Swift.h

如果我按照ansewrs中的方法this question,我可以通过添加以下文件来解决错误,然后导入该文件代替Module-Swift.h

//
//  Module-Swift-Fixed.h
//  Module
//

#ifndef Module_Swift_Fixed_h
#define Module_Swift_Fixed_h

#import <Foundation/Foundation.h>

#import <CoreData/CoreData.h>
#import <UIKit/UIKit.h>

#import "Module-Swift.h"

#endif /* Module_Swift_Fixed_h */

这看起来像是一个可怕的黑客。我错过了在Xcode中实现这一目标的正确方法吗?

1 个答案:

答案 0 :(得分:0)

在Obj-C文件中,您需要导入swift模块(使用#import "Module-Swift.h")。

仅在要使用Swift模块中定义的类型的文件中执行此操作。