gpt4 book ai didi

ios - 是否可以在 Typhoon 中重用具有运行时参数的定义?

转载 作者:行者123 更新时间:2023-11-29 12:28:55 25 4
gpt4 key购买 nike

在我们的应用中,我们重用了一个基础 View Controller ,它为我们应用中的 View 提供了通用功能。它需要注入(inject)一个 View 和一个 View 模型。我在我们的程序集中创建了一个类似于以下的定义:

- (BaseViewController *)baseViewControllerWith:(UIView *)view andViewModel:(ViewModel *)viewModel {
return [TyphoonDefinition withClass:[MLBaseViewController class] configuration:^(TyphoonDefinition *definition) {
[definition useInitializer:@selector(initWithView:viewModel:) parameters:^(TyphoonMethod *initializer) {
[initializer injectParameterWith:view];
[initializer injectParameterWith:viewModel];
}];
}];

这里的想法是将这个定义重用于所有不同的用途。我们可能会注入(inject) SignUpView 和 SignUpViewModel:

- (SignUpViewController *)signUpViewControllerWithViewModel:(ViewModel *)viewModel {
[self baseViewControllerWith:[self signUpView:viewModel] andViewModel:viewModel]
}

我遇到了一个相当搞笑的运行时异常:
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“恭喜你已经尝试用 Typhoon % 做一些超时髦的事情”。您是第三个收到此错误消息的人。不支持返回作为嵌套运行时参数结果的定义。而是展开定义。
*

我这样做的原因是因为我有太多使用该 baseViewController 定义的定义,我希望能够重用它并注入(inject)不同的 View / View 模型而不必重写该定义到处。 Typhoon 不支持这个吗?

最佳答案

这实际上之前已经被请求过as an enhancement在台风的问题跟踪器中。如果您愿意,请对这个问题发表评论和投票。

关于ios - 是否可以在 Typhoon 中重用具有运行时参数的定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330683/

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