1

情况

我有一个带有多个子视图控制器的页面视图控制器。每个子视图控制器都略有不同。

为了便于管理,我定义了枚举 MyPageViewChild

enum MyPageViewChild {
    case someName...
    case someName...
    case someName...
    case someName...
    case someName...
    case someName...
    case someName...
}


问题

我正在努力找出放置枚举的最佳文件在哪里。

当枚举很短时(就像没有额外的 var & funcs 那样的 case 声明),我可能可以将它放在与页面视图控制器相同的文件中。

当枚举很长时,比如有许多额外的 var 和 func,它应该放在某个地方,但不能与 Page View Controller 放在同一个文件中。


问题

它与视图控制器密切相关,因此我计划创建一个文件 PageViewChild.swift 并将其直接放置在与页面视图控制器相同的位置。

所以目录(或者实际上是 Xcode 组)会是这样的。

- ViewController
    - MyPageViewChild.swlft <- enum among with view controllers
    - MyPageViewController.swift
    - MyPageViewChildOne
    - MyPageViewChildTwo
    - MyPageViewChildThree

上面的例子可以吗,还是应该放在项目内的模型目录或枚举目录下?

4

1 回答 1

3

首先,我不得不说这是基于意见的问题,这实际上取决于您的代码组织。

无论如何,如果您在类范围内或在范围外声明枚举,没有区别。您唯一需要记住的是,如果您需要获取它的引用,您必须指定 enum 的声明位置

SomeClass.Enum

我认为,如果枚举与其他类密切相关,则可以在相关类的范围内声明枚举。这种行为我们可以在新版本的 Swift 中看到,其中许多枚举已被重命名(基本上,枚举已被移动到相关类的范围并重命名为聪明的自描述短名称)

一个很好的例子可以是重命名与相关事件的枚举UIControl

UIControlEvents -> UIControl.Event

那么你看到这个策略了吗?所以,决定。

于 2019-02-06T06:17:18.000 回答