2

对于 Swift 框架,我有以下结构:

FrameworkA
├── FrameworkA.swift
└── Objective-C
    ├── ClassA.h
    └── ClassA.m

不幸的是,我无法ClassA在内部访问FrameworkA.swift;错误是:

使用未解析的标识符“ClassA”

ClassA应该受到保护/框架内部。

我究竟做错了什么?

4

1 回答 1

4

根据苹果文档

将 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 类而不公开它。☹️

于 2016-12-23T16:36:00.147 回答