所以我有一个枚举,它控制一个视图控制器的实例以及所述视图控制器的创建。见下文:
RGOSessionsViewController
我想在该枚举上创建一个存储实例化视图控制器的属性,但由于我不解释的原因(主要是易于与现有代码集成),我希望使用特定的类类型为Active,Scheduled和分别完成。他们都来自extension RGOSessionsTableType where self == .Active {
}
,但正如我所提到的,我宁愿不做这种较低级别的属性。
我已经尝试过以下无法编译的内容,我以前从未在扩展的子句中做过,所以很可能我的语法错了,或者根本不可能:
def printItems(l):
for x in range(len(l)):
if x == 0:
return False
elif x == 1:
return l
赞赏任何建议。
答案 0 :(得分:1)
从评论中移出:
我认为这里的枚举不是一个好主意。您应该尝试使用协议+ 3类/结构来实现它。这将允许你扩展“只有一个案例”并在其中添加更多“案例”。与here一样。
关于链接文章的快速信息:
为什么我不再喜欢Swift Enums
在最后两个悉尼Cocoaheads中,每当我在演讲中看到使用Enums时,我一定要问“为什么是enum而不是协议?”。这篇博文有望解释枚举的气味。
首先,我必须说如果您永远不需要延长案例数量,那么枚举很棒。但是,不正确的枚举使用会破坏 SOLID 原则中的 O 。
公开关闭原则
“类型”应该对扩展程序开放,但对于修改时会关闭。
我相信表达问题最能解释违规行为。
表达式问题
添加新方法;添加新案例。选一个。
我将尝试使用枚举引导您完成表达式问题,然后使用访问者模式继续“解决”它。