gpt4 book ai didi

ios - 如何访问已激活 plist 的程序集?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:15 27 4
gpt4 key购买 nike

我正在转换一个项目以使用 Typhoon 的 plist 集成。我可以看到我添加到 TyphoonInitialAssemblies 键的程序集正在被激活,但之后我不知道如何访问激活的程序集。

最佳答案

您可以通过注入(inject)程序集来访问程序集。您可以为 App Delegate 定义一个特例定义,如 shown in the Typhoon example application :

- (PFAppDelegate *)appDelegate
{
return [TyphoonDefinition withClass:[PFAppDelegate class]
configuration:^(TyphoonDefinition *definition)
{
//Inject the assembly
[definition injectProperty:@selector(assembly)
with:self];

//Inject other properties
[definition injectProperty:@selector(window)
with:[self mainWindow]];
[definition injectProperty:@selector(cityDao)
with:[_coreComponents cityDao]];
}];
}

. .或者您也可以将程序集注入(inject)到任何其他 Typhoon 创建的组件中。这对于使用 factory pattern 从一个对象图转到另一个对象图非常有用。 .

  • 请注意,对于 App Delegate(或在 Typhoon 之外创建的其他对象),属性和方法注入(inject)可以正常工作,但当然不支持初始化程序注入(inject)。此外,您不能缩小对象的范围,也就是说,在声明为原型(prototype)的 Typhoon 之外创建的单例将仍然是单例。
  • 另请注意,如果您愿意,您可以使用协议(protocol)支持您的程序集,这样就没有必要将您的类直接耦合到 Typhoon。

通过 plist 集成引导的程序集也是绑定(bind)到您的初始/主要 Storyboard的程序集,因此任何 auto-injection在你的 Storyboard创建的 View Controller 上定义的属性将被实现。这包括程序集类型属性,例如:

@property(nonatomic, strong) InjectedClass(MyAssembly) assembly; 

this feature is here 的文档.

关于ios - 如何访问已激活 plist 的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28847478/

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