在Swift中定义枚举的最佳位置是哪里?

5

我正在为我的应用程序编写模型类,我想知道在哪里定义这个类将使用的枚举。 应该在类内部还是外部定义?


在Swift中,情况并不像“在类内或类外”那么简单。需要研究Swift的私有修饰符和扩展的非标准行为。 - user652038
2个回答

10

如果只有一个类使用此枚举类型,则应将其定义在该类内部。但是,如果有多个类使用您的枚举类型,则应在其自己的文件中创建它。


谢谢您的快速回复! - Sam Kirkiles
如果我的回答解决了您的问题,请接受我的答案,这样其他人就可以更容易地找到它。 :) - Christian
哈哈,你回答得太快了,让我等了11分钟才能接受。 - Sam Kirkiles
这个逻辑从哪里来的? - user652038
@Jessy 个人的知识和面向对象的思维方式。没有完全正确或错误的答案,但我认为采用“清晰”和面向对象的编码方式是最好的选择。 - Christian
“在自己的文件中”并不意味着枚举类型不能由于扩展而嵌套。 - user652038

8
根据以下规则将枚举嵌套或设置为私有。永远不应该使用Objective-C所需的笨重的CE语法。
class C {}

// Do this if you need E outside C.
extension C {
  enum E {

  }
}

private enum E {} // Do this if you won't use E outside this file.

1
为什么我们要将枚举定义为C的扩展,而不是在类内部定义? - Declan McKenna
1
这也可以运行。你只是不能将精确代码从文件中剪切并移动到其他地方。该方法适用于与父类型定义相同的文件内或外部。 - user652038

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接