我有一个具有多个子视图控制器的页面视图控制器。 每个子视图控制器都略有不同。
为了易于管理,我定义了枚举MyPageViewChild
enum MyPageViewChild {
case someName...
case someName...
case someName...
case someName...
case someName...
case someName...
case someName...
}
我正在努力找出放置枚举的最佳文件在哪里。
当枚举很短时(例如没有大小写声明的情况下没有其他var和funcs),我可能可以将其放置在与Page View Controller相同的文件中。
当枚举很长时,例如具有许多其他var&funcs,它应该放在与Page View Controller相同的文件中,而不是同一文件中。
它与视图控制器密切相关,因此我计划创建一个文件PageViewChild.swift并将其直接与页面视图控制器放在同一位置。
因此目录(或实际上是Xcode组)就是这样。
- ViewController
- MyPageViewChild.swlft <- enum among with view controllers
- MyPageViewController.swift
- MyPageViewChildOne
- MyPageViewChildTwo
- MyPageViewChildThree
上面的例子可以吗,还是应该放在项目的模型目录或枚举目录下?
答案 0 :(得分:3)
首先,我必须说这是基于意见的问题,它实际上取决于您的代码组织。
无论如何,如果您在类范围内或范围外声明枚举,则没有任何区别。您唯一需要记住的是,如果需要获取引用,则必须指定声明枚举的位置
SomeClass.Enum
我认为,如果enum与某个其他类紧密相关,则可以在相关类的范围内声明enum。例如,我们可以在新版本的Swift中看到这种行为,其中许多枚举已重命名(基本上,枚举已移至相关类的作用域,并重命名为巧妙的自描述短名称)
一个很好的例子是为与UIControl
相关的事件重命名枚举
UIControlEvents -> UIControl.Event
那么您看到这种策略了吗?所以,决定。