前序
在Swift語言中,訪問修飾符有五種,分別為fileprivate,private,internal,public和open。其中 fileprivate和open是Swift 3新添加的。由于過去 Swift對于訪問權限的控制,不是基于類的,而是基于文件的。這樣會有問題,所以Swift 3新增了兩個修飾符對原來的private、public進行細分。
修飾符區別
1.private
private訪問級別所修飾的屬性或者方法只能在當前類里訪問。
2.fileprivate
fileprivate訪問級別所修飾的屬性或者方法在當前的Swift源文件里可以訪問
3. internal(默認訪問級別,internal修飾符可寫可不寫)
internal訪問級別所修飾的屬性或方法在源代碼所在的整個模塊都可以訪問。
如果是框架或者庫代碼,則在整個框架內部都可以訪問,框架由外部代碼所引用時,則不可以訪問。
如果是App代碼,也是在整個App代碼,也是在整個App內部可以訪問。
4.public
可以被任何人訪問。但其他module中不可以被override和繼承,而在module內可以被override和繼承。
5. open
可以被任何人使用,包括override和繼承。
5種修飾符訪問權限排序
由高到低如下:
open > public > interal > fileprivate > private