在 swift 中导入 swift 链接对象 class
import swift linked objc class in swift
我目前工作的项目有 Objective-C 和 Swift 与桥接头链接,一切正常。但是在一种情况下,Obj-c 中的这个特定 viewController.h 已经导入了 swift。当我尝试在另一个 Swift 控制器中访问此 viewController.h 时,它显示“<#project-name#>-swift.h”找不到文件
指导我如何在 swift 中访问此 objC 文件:(
已编辑:详细!!
我有一个 viewController.h 文件,我通过导入 '<#project-name#>-swift.h'
实现了 swift 模型
但是当我尝试从 SecondViewController.swift 访问此 viewController.h 时,我必须将此 #import "viewController.h"
添加到我的项目的桥接头文件中。如果我这样做,我会收到此错误
'<#project-name#>-swift.h' 找不到文件
如果我对你所做的理解是正确的,问题是 projectname-Swift.h
header 包含在 header (viewController.h
) 中在桥接中转入header。
https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID122 处的文档谈到将生成的 *-Swift.h
header 包含在 .m
文件中,而不是 header 中,建议不应该包含在 header 中以避免循环依赖。您仍然可以将它包含在 header 中,但如果 header 包含在桥接 header 中,那将会中断。
我会在 viewController.m
中导入 *-Swift.h
,而不是 viewController.h
。如果您需要将 Swift 类型作为 属性、参数或 viewController.h
中的 return 类型进行引用,那么您可以使用前向声明,例如
@class MySwiftModelClass;
如果在 viewController.h
中声明 类 扩展 MySwiftModelClass
,那么事情会变得有点棘手。如果是这样,请post一个更具体的简短示例。
我目前工作的项目有 Objective-C 和 Swift 与桥接头链接,一切正常。但是在一种情况下,Obj-c 中的这个特定 viewController.h 已经导入了 swift。当我尝试在另一个 Swift 控制器中访问此 viewController.h 时,它显示“<#project-name#>-swift.h”找不到文件
指导我如何在 swift 中访问此 objC 文件:(
已编辑:详细!!
我有一个 viewController.h 文件,我通过导入 '<#project-name#>-swift.h'
实现了 swift 模型但是当我尝试从 SecondViewController.swift 访问此 viewController.h 时,我必须将此 #import "viewController.h"
添加到我的项目的桥接头文件中。如果我这样做,我会收到此错误
'<#project-name#>-swift.h' 找不到文件
如果我对你所做的理解是正确的,问题是 projectname-Swift.h
header 包含在 header (viewController.h
) 中在桥接中转入header。
https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID122 处的文档谈到将生成的 *-Swift.h
header 包含在 .m
文件中,而不是 header 中,建议不应该包含在 header 中以避免循环依赖。您仍然可以将它包含在 header 中,但如果 header 包含在桥接 header 中,那将会中断。
我会在 viewController.m
中导入 *-Swift.h
,而不是 viewController.h
。如果您需要将 Swift 类型作为 属性、参数或 viewController.h
中的 return 类型进行引用,那么您可以使用前向声明,例如
@class MySwiftModelClass;
如果在 viewController.h
中声明 类 扩展 MySwiftModelClass
,那么事情会变得有点棘手。如果是这样,请post一个更具体的简短示例。