作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我可以使用 matcher 根据协议(protocol)选择定义,那就太好了,例如:
- (UIViewController *)viewControllerForViewModel:(id <IViewModel>)viewModel
{
return [TyphoonDefinition withOption:viewModel matcher:^(TyphoonOptionMatcher *matcher)
{
[matcher conformsToProtocol:@protocol(ILoginViewModel) use:[self loginViewController]];
[matcher conformsToProtocol:@protocol(IMainViewModel) use:[self mainScreenViewController]];
[matcher defaultUse:[self emptyScreen]];
}];
}
@property (nonatomic) Protocol *proto;
....
+ (id)matchWithConformsToProto:(Protocol *)proto injection:(id)injection;
- (void)conformsToProto:(Protocol *)aProtocol use:(id)injection
...
- (TyphoonOptionMatch *)matchForValue:(id)value {
...
BOOL isConformProto = (match.proto && [value conformsToProtocol:match.proto]);
最佳答案
此功能已在 3.4.5 release 中推出
[matcher caseConformsToProtocol:@protocol(IMainViewModel)
use:[self mainScreenViewController]];
关于ios - TyphoonOptionMatcher 与 conformsToProtocol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939136/
如果我可以使用 matcher 根据协议(protocol)选择定义,那就太好了,例如: - (UIViewController *)viewControllerForViewModel:(id )v
我是一名优秀的程序员,十分优秀!