objective-c - 在 Objective C header 中访问 Swift 类

标签 objective-c swift xcode

我一直在很好地混合使用 Swift 和 Objective C,但是我在从 Objective C 的 HEADER 文件访问 Swift 类时遇到了问题。我可以在 .m 文件中成功地做到这一点。

在 .h 文件中,我导入 Xcode 生成的格式为“Appname-Swift.h”的文件。但是,在这样做的过程中,我得到了找不到文件的消息。我可以毫无问题地在我的 .m 文件中进行同样的导入。但是,我在 .h 文件中需要它,因为我引用了一个需要使用公共(public) API 访问的 Swift 类。

如何使用 Objective C 的 .h 部分中的 Swift 类?

例子:

#import <UIKit/UIKit.h>
#import "MyApp-Swift.h"

@interface SelectedContactsVC : UIViewController

@property (nonatomic,strong) MapVC *mapVC;

@end

上面的 MapVC 是一个 Swift 类。

最佳答案

#import "MyApp-Swift.h" 移动到 .m 文件。

并将您的 .h 文件制作为:

#import <UIKit/UIKit.h>
@class MapVC;

@interface SelectedContactsVC : UIViewController

@property (nonatomic,strong) MapVC *mapVC;

@end

Swift 无法生成“MyApp-Swift.h”,如果它是从 Objective-C 头文件导入的,可能是某种相互依赖的东西。

关于objective-c - 在 Objective C header 中访问 Swift 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295604/

相关文章:

ios - 以编程方式关闭 Storyboard上存在的 View Controller

iphone - 如何将字符串赋值给宏?

ios - 在 UITableViewCell 中绘制一个彩色圆圈

ios - AVAudioPlayer 导致应用程序崩溃

swift - 是否可以为 RealityKit 中的对象设置基于位置的 anchor ?

ios - UITableview 在 didselectrow 上的滚动位置

xcode - 在 Xcode 窗口中显示项目路径

objective-c - AVAssetExportSession 不会导出 AVAudioRecorder 录制的音频

objective-c - UITableView reloadRowsAtIndexPaths 和 cellForRowAtIndexPath

ios - TabBar 在 Segue 之后消失(Swift - Xcode)