【发布时间】:2019-10-13 00:46:38
【问题描述】:
全部
Xcode 10.3 和 Swift 5.0
我有一个包含 3 个目标(“名称”、“名称测试”和“本地名称”)的复杂项目
我已经设置了 Swift 和 Objective-C 之间的所有互操作性标头,包括 Name-Bridging-Header.h、用于选择性导入 Name-Swift.h、Name_Test-Swift.h 或 Name_Local-Swift.h 的 Objc 预处理器宏
#ifdef TEST
#import "Name_Test-Swift.h"
#elif LOCAL
#import "Name_Local-Swift.h"
#else
#import "Name-Swift.h"
#endif
我已经导入了几个我经常使用的 Swift 类,并且一切正常。
现在....
我添加了一个新的 Swift 类。这个新类是 NSObject 的子类
class NewClass: UIView { }
但是在Objective-C 类中使用新类,Xcode 找不到这个新类,出现以下错误:
# import "Name-Swift.h" 无法识别。
NewClass *item = [NewClass alloc]; - 未知类型名称'NewClass'
我检查了以下内容: - 新类被添加到所有目标中,并在 Build-Phases->Compile-Sources 部分进行验证
- 我的其他 Swift 类没有 public 或 @objc 标识符,一切正常......所以我仍然尝试在新类中使用它们(@objc 和类定义中的 public),没有成功
在任何 Objective-C 类中只添加 NewClass *item = [NewClass alloc]; 会使 Xcode 停止识别 "Name-Swift.h"
知道缺少什么吗?
【问题讨论】:
-
只是为了确保:您是否执行了 Product>Clean、删除派生数据和重新启动 Xcode 的常规仪式?
-
嗨@Yonat...我尝试了所有这些,还重新启动了我的Mac并重新启动了Xcode....我发现我无法在.h文件中声明一个Swift类实例我必须在 .m
标签: objective-c swift xcode bridging-header