对于 Swift 框架,我有以下结构:
FrameworkA
├── FrameworkA.swift
└── Objective-C
├── ClassA.h
└── ClassA.m
不幸的是,我无法ClassA
在内部访问FrameworkA.swift
;错误是:
使用未解析的标识符“ClassA”
ClassA
应该受到保护/框架内部。
我究竟做错了什么?
对于 Swift 框架,我有以下结构:
FrameworkA
├── FrameworkA.swift
└── Objective-C
├── ClassA.h
└── ClassA.m
不幸的是,我无法ClassA
在内部访问FrameworkA.swift
;错误是:
使用未解析的标识符“ClassA”
ClassA
应该受到保护/框架内部。
我究竟做错了什么?
根据苹果文档
将 Objective-C 导入 Swift
要在与您的 Swift 代码相同的框架目标中导入一组 Objective-C 文件,您需要将这些文件导入到框架的 Objective-C 伞头文件中。
将 Objective-C 代码从同一框架导入 Swift
在 Build Settings 下的 Packaging 中,确保该框架目标的 Defines Module 设置设置为“Yes”。在您的总括头文件中,导入您想要向 Swift 公开的每个 Objective-C 头文件。例如:
#import <XYZ/XYZCustomCell.h> #import <XYZ/XYZCustomView.h> #import <XYZ/XYZCustomViewController.h>
所以,正式地,看起来没有办法在 Swift 文件中看到一个 Objective-C 类而不公开它。☹️