将工作空间拆分为框架时如何处理扩展?

How to deal with extensions when splitting workspace into frameworks?

我正在通过将 iOS 项目拆分为框架来优化它。我正在考虑首先分离 UI 组件,但在分析我的方法时我感到困惑。 我有一些 UIKit 组件的扩展,我在我的自定义组件 类 和我的组件组之外的许多其他 类 中使用它们。现在我首先想到的是,我可以将这些扩展添加到一个框架中,并将其导入到我的 UIComponents 和项目中的其他文件中,但是它们可能很多。这个问题有更简洁的解决方案吗?

是的,您可以将实现移至框架中,并将自定义保留在应用程序目标中的扩展中。例如:

之前:

extension UIViewController {

    // Helper method to show alert
    func showAlert() {
        let alert = UIAlertController(title: "...", message: "", preferredStyle: .alert)
        // ...
        present(alert, animated: true)
    }
}

之后:

import FrameworkName

extension UIViewController {

    func showAlert() {
        showAlertInFramework(parameters: ParameterTypes)
    }
}