我这样做,并得到了一些意想不到的结果超级有用的:我有麻烦集成在斯威夫特应用程序的框架。 Objective-C的工作很好。 你在这里提到了一些注意事项。
我建议在Objective-C中使用所有功能编写测试应用程序时迭代执行此操作。这样,如果有一些功能不能很好地跨越Swift到Objective-C的边界,它会尽早被发现。
你有关的问题的话一般都是用一个小小的例外正确:自选没有从Objective-C的缺失,它们显示为变量和方法参数nullable/nonnull
修饰。虽然这不能完全取代可选项,但它有助于在流程的早期检测问题。
这里是我发现了其他一些问题随机列表:
斯威夫特Error
和NSError
在Objective-C使用之间的桥接。转换并不总是一帆风顺,所以最好在导出的代码中使用NSError
。
如果您在框架混合Objective-C和斯威夫特,你不能使用桥接报头,而是采用modulemap文件,这往往把相当大的和复杂的。
由于您不能在框架内嵌入框架,因此您必须确保应用程序为其目标设置了ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
标志。这必须在文档中明确指出。另外,为框架创建胖库时,必须从分布式SDK中去除这些文件。
而且,正如我在一开始所说的,在Swift应用程序中使用最终的混合语言框架仍然没有成功。
希望,这将添加到开发库时要考虑的事项列表中。
来源
2017-07-11 18:15:53
UrK
您将无法使用枚举的完整功能。 – Mozahler
@Mozahler - 你是对的,更新了问题 –