与视图控制器相关的枚举的放置位置

时间:2019-02-06 05:41:46

标签: ios swift enums directory uipageviewcontroller

情况

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

为了易于管理,我定义了枚举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

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

1 个答案:

答案 0 :(得分:3)

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

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

SomeClass.Enum

我认为,如果enum与某个其他类紧密相关,则可以在相关类的范围内声明enum。例如,我们可以在新版本的Swift中看到这种行为,其中许多枚举已重命名(基本上,枚举已移至相关类的作用域,并重命名为巧妙的自描述短名称)

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

UIControlEvents -> UIControl.Event

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