Bil*_*ill 18 objective-c swift
我正在将Swift代码集成到一个大型的Objective-C项目中,但是当我的Swift代码引用Objective-C类时,我遇到了问题.例如,假设我有:
MyTableViewControllerDeletionWorkflow我声明了一个Swift类如下:
class DeletionVC: MyTableViewController {
let deleteWorkflow: DeletionWorkflow
...
}
Run Code Online (Sandbox Code Playgroud)
如果我现在尝试通过导入ProjectName-Swift.hObjective-C代码来使用这个类,我会得到两个MyTableViewController和未定义的符号错误DeletionWorkflow.
我可以通过导入DeletionWorkflow.h和导入MyTableViewController.h之前修复单个源文件中的问题,ProjectName-Swift.h但这不能扩展到我希望我的Swift和Objective-C经常进行交互的大型项目.
有没有办法添加前向类引用,ProjectName-Swift.h以便当我尝试在我的应用程序中使用Objective-C代码中的Swift类时不会发生这些错误?
joh*_*les 19
您可以创建另一个头文件,用于转发声明或导入必要的类,然后导入ProjectName-Swift.h.例如,创建一个以ProjectName-Swift-Fixed.h内容命名的文件:
// ProjectName-Swift-Fixed.h
// Forward declarations for property classes
@class DeletionWorkflow;
// Imports for superclasses
#import "MyTableViewController.h";
#import "ProjectName-Swift.h"
Run Code Online (Sandbox Code Playgroud)
然后,使用而不是#import "ProjectName-Swift.h"在您的代码库中#import "ProjectName-Swift-Fixed.h.
jtb*_*des 16
这有点傻,但听起来像你的"解决方法"是Apple的意图,至少目前如此.从互操作性指南:
如果在Swift代码中使用自己的Objective-C类型,请确保在将Swift生成的头导入
.m要从中访问Swift代码的Objective-C 文件之前导入这些类型的Objective-C头.
在这个devforums帖子中,有人提到他们已经在Radar中提交了一个bug.你可能也应该这样.
| 归档时间: |
|
| 查看次数: |
8463 次 |
| 最近记录: |