2016-09-16 45 views

回答

89

fileprivate是新的Swift 3访问修饰符之一,其含义取代privatefileprivate定义了一个实体(类,扩展,属性,...)作为它声明的源文件之外的所有人的私有,但可以被该源文件中的所有实体访问。

private限制直接封闭范围内的实体。

+5

你是什么意思的“直接封闭范围”?我什么时候只用'private'而不是'fileprivate'? –

+4

封闭范围是在这个扩展中的块或文件集合,其中声明了一个实体,“private”意味着隐藏实现细节或隐藏限制于所有者的东西,而'fileprivate'可用于共享一些在同一文件中的所有实体之间的通用功能。 – xhamr

+2

在swift 3.0中,swift <3.0'private'作品像'fileprivate'。如果你快速申报2.3两个具有私有变量的类,但在同一个文件中,它们仍然可以访问每个“私有”标记变量。 – Robert