gpt4 book ai didi

ios - 使用 Typhoon 将属性注入(inject)未由 Typhoon Assembly 初始化的类

转载 作者:行者123 更新时间:2023-11-29 11:42:42 24 4
gpt4 key购买 nike

我正在开发一个私有(private) pod,目前我在使用 Typhoon 将属性注入(inject) Bootstrap 类时遇到了一些困难。

我的类(class):

public class MyLibrary: NSObject {
var dependency: MyDependencyProtocol?
}

我的程序集:

open class MyLibraryAssembly: TyphoonAssembly {

open dynamic func lib() -> Any
{
return TyphoonDefinition.withClass(MyLibrary.self) { (definition) in
definition?.injectProperty(#selector(getter: MyLibrary.dependency), with: self.dependency())
definition?.scope = .singleton
}
}
}

但是,消费者应用程序将使用 var lib = MyLibrary() 来初始化对象,而不是使用依赖注入(inject)。如何在调用 init 时将依赖项注入(inject) MyLibrary 类?

最佳答案

最好在 MyLibrary 类中定义一个类方法以返回 MyLibrary 类的构建实例。此方法将:

  • > Bootstrap Typhoon
  • 向 Typhoon 询问您的库的构建和配置实例
  • 返回给方法调用者

示例:MyLibrary.instance()MyLibrary.instanceWithConfig(someConfig)

  • 这些方法的调用者不会关心对象是如何在幕后构建的——只需要相信一个构建和配置的实例会被返回。
  • 仍然可以选择使用公共(public)构造函数手动组装库的实例。

关于ios - 使用 Typhoon 将属性注入(inject)未由 Typhoon Assembly 初始化的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45580930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com