Swift 与 xcframework 致命错误:使用未实现的初始值设定项 'init(frame:)' 用于 class

问题描述

作为序言,我正在尝试采用 xcframework。我的组织中有一堆模块,它们以二进制形式以 xcframeworks for Xcode 12 的形式分发。

现在使用任何模块的二进制版本都会导致我们崩溃并出现以下错误:

fatal error: use of unimplemented initializer 'init(frame:)' for class

最大的问题是,这是运行时崩溃,并没有在编译时捕获(我认为应该是)。

现在,到目前为止,这些类在 framework 二进制分发版中运行良好。如果我只是使用源代码,这也不是问题。

据我所知,这是 swift 和 objc 之间互操作的错误。我已经探索了一些解决方法。

  1. 覆盖所有类上的 init(frame:):问题在于我们有 1000 多个类,每个类都有自己的一组参数,需要使用默认值进行初始化。绝对不可扩展。以及我如何在将来制作的课程上强制执行此操作?
  2. 创建一个基本视图:在这里我不必初始化所有参数,但问题是,我们有许多不同类型的视图可以有 init(frame:),并且必须为所有这些视图创建子类.而且,还必须在所有存在的文件中实现它。

这里有更好的选择吗?还是我坚持使用上述两个选项之一?另外,有没有一种方法可以强制我使用适当的覆盖 init(frame:) 编写视图,或者以某种方式自动添加它们?

感谢您的阅读,如果您能在这方面提供帮助,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)