gpt4 book ai didi

ios - 在 swift 中导入 swift 链接的 objc 类

转载 作者:行者123 更新时间:2023-11-29 00:21:14 28 4
gpt4 key购买 nike

我目前工作的项目将 Objective-C 和 Swift 都与桥接 header 链接在一起,一切正常。但在一种情况下,Obj-c 中的这个特定 viewController.h 已经快速导入。当我尝试在另一个 Swift Controller 中访问此 viewController.h 时,它显示“<#project-name#>-swift.h”文件未找到

指导我如何快速访问此 objC 文件:(

已编辑:详细!!

我有一个 viewController.h 文件,通过导入“<#project-name#>-swift.h”实现了 swift 模型

但是当我尝试从 SecondViewController.swift 访问此 viewController.h 时,我必须将此 #import "viewController.h" 添加到我的项目的桥接 header 中。如果我这样做,我会收到此错误找不到“<#project-name#>-swift.h”文件

最佳答案

如果我对您所做的事情的理解是正确的,那么问题是 projectname-Swift.h header 包含在 header (viewController.h) 中依次导入桥接头中。

文档位于 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID122谈到在 .m 文件中包含生成的 *-Swift.h header ,而不是在 header 中,建议它不应包含在 header 中以避免循环依赖。您仍然可以将它包含在 header 中,但如果 header 包含在桥接 header 中,那将会中断。

我会在 viewController.m 中导入 *-Swift.h,而不是 viewController.h。如果您需要在 viewController.h 中引用 Swift 类型作为属性、参数或返回类型,那么您可以使用前向声明,例如

@class MySwiftModelClass;

如果在 viewController.h 中声明的类扩展 MySwiftModelClass,那么事情会变得有点棘手。如果是这种情况,请发布更具体的简短示例。

关于ios - 在 swift 中导入 swift 链接的 objc 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201571/

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