gpt4 book ai didi

ios - 在 Typhoon 中使用非属性方法初始化对象

转载 作者:行者123 更新时间:2023-12-01 19:01:54 26 4
gpt4 key购买 nike

我尤其是 DI 和 Typhoon 的新手。我想知道是否可以使用初始化方法和属性以外的方法初始化对象。
我有一个名为 ObjectMapper 的类,一个 ObjectMapper 可以有 N 个 ObjectMap。在使用台风之前,我会像这样创建 map :
ObjectMap *map1 = [ObjectMap new];
[map1 mapProperty:@"prop1" toName:@"name1"];
[map1 mapProperty:@"prop2" toName:@"name2"];
ObjectMap *map2 = [ObjectMap new];
[map2 mapProperty:@"prop3" toName:@"name3"];
mapper.maps = @[map1, map2];

在应用程序的整个生命周期中,映射和映射器对象永远不会改变。我想在 Typhoon 中创建 ObjectMapper 和 ObjectMaps。
更新:似乎 TyphoonFactoryProvider 可能会有所帮助,但我不知道如何将工厂创建的对象放入“ map ”数组中。

最佳答案

如果您准备好冒险,您可以尝试支持方法注入(inject)的 Typhoon 的开发版本。 (仍然没有记录,但似乎有效)

-(id) mappedComponent
{
return [TyphoonDefinition withClass:[ObjectMap class] injections:^(TyphoonDefinition *definition) {
[definition injectMethod:@selector(mapProperty:toName:) withParameters:^(TyphoonMethod *method) {
[method injectParameterWith:@"property"];
[method injectParameterWith:@"name"];
}];
}];
}

关于ios - 在 Typhoon 中使用非属性方法初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255868/

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