[MyTarget]-Swift.h 没有 MySwiftClass 声明

问题描述 投票:0回答:1

在 macOS CoreAudio 插件开发中,我尝试从 Objective-C 代码调用 Swift func。但我收到错误:

使用未声明的标识符“MySwiftClass”

我检查了这些。

  • 在 Swift 类和公共函数上添加“@objc”。
  • #import "[MyTarget]-Swift.h" 在 Objective-C 代码上
  • 在 MySwiftClass.swift 的 Xcode“目标成员身份”上,检查 MyTarget。
  • 将 Swift 版本设置为 Swift5。
  • 将 macOS 最低支持设置为 12.3。
  • 在命令行上运行 xcodebuild 并修复所有错误

但是~/Library/Developer/Xcode/DerivedData/[MyProject]-[hash]下的“[MyTarget]-Swift.h”没有MySwiftClass的声明

我想知道生成 [MyTarget]-Swift.h 的命令,并找出为什么 MySwiftClass 被忽略。

如果目标是 macOS 应用程序,我可以从 Objective-C 代码调用 Swift func。

swift objective-c core-audio
1个回答
0
投票

我发现 Xcode [Target]-Swift.h gen 工具不关心“目标成员身份”。它只能看到 MyTarget 目录下的 swift 文件。

失败案例档案位置

  • MyTarget1/MyOBJC1Class.m
  • MyTarget1/MySwiftClass.swift
  • MyTarget2/MyOBJC2Class.m
  • MyTargert2 的 MySwiftClass.swift ON 的 Xcode 目标成员资格

成功案例档案位置

  • MyTarget1/MyOBJC1Class.m
  • MyTarget1/MySwiftClass.swift
  • MyTarget2/MyOBJC2Class.m
  • MyTarget2/MySwiftClass.swift(精确副本)
© www.soinside.com 2019 - 2024. All rights reserved.