Class 可以在一个.swift文件中创建多个类,还是应该为每个类创建一个单独的.swift文件?

Class 可以在一个.swift文件中创建多个类,还是应该为每个类创建一个单独的.swift文件?,class,swift,Class,Swift,是否认为在一个swift文件中创建多个类的技术较差,还是最好为每个类创建一个单独的swift文件 例如,哪个更好: A.ViewController.swift中有多个类: 1。阿尔法·斯威夫特: class alpha: UIViewController { ... } class beta: UIWebView { ... } class gamma: UINavigationController { ... } class alpha: UIViewController { ... }

是否认为在一个
swift
文件中创建多个类的技术较差,还是最好为每个类创建一个单独的
swift
文件

例如,哪个更好:

A.ViewController.swift中有多个类: 1。阿尔法·斯威夫特

class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
B.每个类别的单独.swift文件:
1。以字母表示的swift

class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
2。在beta.swift中

class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
3。在伽马.斯威夫特中

class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }
class alpha: UIViewController { ... }
class beta: UIWebView { ... }
class gamma: UINavigationController { ... }

这不是一个糟糕的技术,如果类是连接的

要确定它们是否连接,请询问:一个类是否可以不使用另一个类?

如果是,那么您应该有两个不同的文件,因为您可能只需要使用其中一个


例如,在C++中,集合为迭代器具有内部类。(我知道这是一个C++例子,但问题不是语言相关的)。


虽然如果类之间没有任何关系(在同一视图上不算),那么它们应该各自有各自的类。

简短回答:这取决于

长答案:
如果您有紧密绑定在一起的小型short类,则将它们放在同一个文件中是正确的。

如果你有很长的、不相关的课程,那么你最好把它们放在不同的文件中。

基于过去几天在互联网上痛苦的调试和搜索,我对这个问题有不同的答案。我是C++开发人员,有15年以上的工作经验。来自这门语言,我熟悉一些需要
保护
访问的设计技术。由于Swift不支持它,而且事实证明他们在不久的将来也不会支持它,所以我开始使用
private
access,并在同一个文件中编写几个类。这样,我就绕过了缺少的
protected
修饰符(私有函数在同一文件中是可见的,因此它们对于同一文件中的所有类都是可见的,如果这些类是派生类,则私有函数实际上是受保护的)。嗯,一切都很好,我很高兴在发现我的应用程序在EXC_BAD_ACCESS code=1时崩溃之前。。。出现异常不是因为我的代码,而是因为成员的布局有点错误。例如,如果我通过实例变量从派生类调用了一个函数a(),则会调用func b()。b()也是同一类的成员,在a()之前定义。这就是为什么一些函数抛出了错误的访问异常。实例指针已损坏。在我将所有3个类移动到独立文件后,一切看起来都很好


我不确定这是不是真正的原因,或者我做错了什么,但在同一个文件中定义多个类的情况下,并不是100%都会有已定义的行为。这可能是编译器的问题,Swift是一种年轻的语言,即使我正在使用Gold Master studio进行测试,它应该是稳定的,但仍然有很多bug。

同意,另外,如果您有大量的代码库,将类保留在自己的文件中只会使它们在浏览文件树时更容易找到