【发布时间】:2015-10-05 16:59:20
【问题描述】:
我正在创建一个应用程序,其中无限数量的规则可以应用于无限数量的节点。
我计划使用核心数据作为数据存储,并在节点和规则之间创建简单的一对多关系。
在 Objective-c 中,我可能会为每个规则创建类并让它们符合协议。
NSArray *ruleClassNames = @[@"SimpleRuleA",@"SimpleRuleB",@"BigFatComplicatedRule"];
int ruleType = [someNode.rules firstObject];
Class class = NSClassFromString(ruleClassNames[ruleType]);
[(ruleClassProtocol*)class performSelector:@selector(runRuleOnNode:) withObject:someNode];
在 swift 中最优雅的方式是什么?
【问题讨论】:
-
你能定义“优雅”吗?
enums与switch一起工作,所以我真的不明白你为什么要使用枚举并避免使用switch。 -
@Sulthan 您显然了解枚举的概念,但请再次阅读问题,看看您是否可以提出解决方案...
-
好吧,您的 Obj-C 代码可以很容易地写入 Swift 中(当然,您可以直接使用类型而不是使用类型名称)。这是否优雅是一个品味问题。
标签: ios objective-c swift core-data enums