【发布时间】:2020-04-10 10:44:48
【问题描述】:
问题如题。
这里是重现步骤:
- 基于Objective-C创建项目
- 创建一个子类 UIViewController 的 Swift 类。它会自动创建一个桥接头。
- 通过在 Objective-C 文件的顶部添加“#import "FooProjectName-Swift.h" 来使用 Objective-C 项目中的 Swift 类(例如默认的 ViewController)。
- 设置BUILD_LIBRARY_FOR_DISTRIBUTION = YES(WWDC视频谈到this)
- Xcode 将显示一个错误,建议我们删除桥接头
- 按照建议删除桥接头
- 不会引用 Swift 类,Xcode 显示错误
这里是示例项目,其中包含显示这些步骤的提交 https://github.com/allenlinli/BUILD_LIBRARY_FOR_DISTRIBUTION-Bug-When-Use-Swift
【问题讨论】:
-
错误信息是什么?
-
它是:“未知类型名称'TheViewController'”和“具有'保留(或强)'属性的属性必须是对象类型”
-
这与
BUILD_LIBRARY_FOR_DISTRIBUTION无关;你有语法错误。ViewController.m第 13 行引用了一个不存在的类型TheViewController。我不清楚这里的正确声明是什么。 -
TheViewController在文件File.swift中声明,你可以通过搜索关键字TheViewController找到它。 -
您需要桥接头。我不知道为什么有人建议你删除它,但我不明白没有它,Objective-C 怎么能看到类型的声明。
标签: ios objective-c swift frameworks xcframework