tvOS 出现 Swift_header 编译错误

Abh*_*hek 5 objective-c ios apple-tv swift tvos

我有一个 tvOS 项目,包含一个 App 目标和 3 个静态库:

\n

EntryPoint \xe2\x80\x93 包含 main 、 AppDelegate 和 SceneDelegate 的静态库

\n

体验包含我的 UI 元素的 \xe2\x80\x93 静态库

\n

使用上述两个库构建的 AppTarget \xe2\x80\x93 可执行文件

\n

我有一个“SelectionTable”类,它是体验目标中 UITableView 的子类:

\n

\r\n
\r\n
import UIKit\n\n class SelectionTable : UITableView\n{\n    private var vDataSrc:[String]!\n\n    func SetDataSrc (_ pDataSrc:[String])\n    {\n        self.vDataSrc = pDataSrc\n    }\n\n    func UpdateDataSrc (_ pStringList:[String])\n    {\n        self.vDataSrc += pStringList\n    }\n\n    func GetDataSrc () -> [String]\n    {\n        return self.vDataSrc\n    }\n}
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

我没有在任何地方使用此类,但在构建 AppTarget 时仍然遇到这些错误:

\n
\n

找不到“UITableView”(“SelectionTable”的超类)的接口声明

\n
\n
\n

期望一个类型

\n
\n

上述错误来自生成的头文件“Experience-Swift.h”。该文件由编译器自动生成。我没有在代码中的任何地方使用 @objc,但 Target-Swift.h 文件仍然包含以下几行:

\n

\r\n
\r\n
SWIFT_CLASS("_TtC10Experience22SelectionTable")\n@interface SelectionTable : UITableView\n- (nonnull instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style OBJC_DESIGNATED_INITIALIZER;\n- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;\n@end
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

当我将上面的类标记为 Private 时,此错误就会消失。

\n

而且,如果我在 EntryPoint 库中定义 SelectionTable 类,则不会发生此错误。

\n

我也在 iOS 项目中使用类似的模型,但我没有遇到这个问题。

\n

我正在使用:- Swift 版本:Swift 5.9.2 XCode 版本:15.2

\n