iOS Swift 组建化探讨

利用 Swift 的协议实现组建化,在 Protocol 中声明约定,在各子模块中扩张协议实现方法,主项目自由组合

协议声明


public protocol LoginViewProtocol {

    static func createViewController() -> UIViewController

}

在集成的库里面实现 LoginModule


public extension LoginViewProtocol {

    static func createViewController() -> UIViewController {

        let viewController = LoginViewController()

        return viewController

    }

}

主项目使用


import LoginModule

struct RoutersInstance {

    struct LoginView: LoginViewProtocol {

    }

}

let viewController = RoutersInstance.LoginView.createViewController()

navigationController?.pushViewController(viewController, animated: true)

实现模块组装,在编译时就可以检查出 LoginModule 是否有实现,如无则报错。切换模块时只需更换 LoginModule
初步想法,欢迎讨论 git:https://github.com/zhulihong89/SwiftRouter

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。