我当前的项目包含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中实现这一目标的正确方法吗?
答案 0 :(得分:0)
在Obj-C文件中,您需要导入swift模块(使用#import "Module-Swift.h"
)。
仅在要使用Swift模块中定义的类型的文件中执行此操作。