gpt4 book ai didi

objective-c - 在自动生成的 Swift 桥接 header 中“找不到接口(interface)声明”

转载 作者:IT王子 更新时间:2023-10-29 05:38:25 24 4
gpt4 key购买 nike

我当前的项目同时包含 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 header ,Class.h
  • 实现文件Class.m导入Swift头文件,Module-Swift.h

如果我按照 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 */

这看起来像是一个可怕的 hack。我是否缺少在 Xcode 中实现此目的的正确方法?

最佳答案

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

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

关于objective-c - 在自动生成的 Swift 桥接 header 中“找不到接口(interface)声明”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com