2016-09-16 47 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