2020年4月16日 星期四

Swift 中的 open,public,internal,fileprivate,private等存取權限介紹

Swift有五個存取權限的關鍵字,分別是open、public、internal、fileprivate和private,一一分別說明如下:

1. private:
private訪問級別所修飾的屬性或者方法只能在當前類裡訪問,具有最低的存取權限宣告的區塊內才可取得,也就是{ } 內才可取得。若為class,可subclass和override。


2. fileprivate:
fileprivate訪問級別所修飾的屬性或者方法在當前的Swift文件裡可以訪問。


3. internal:
默認的存取層級,internal修飾符可忽略不寫internal訪問級別所修飾的屬性或方法在源代碼所在的整個模塊都可以訪問。如果是框架或者庫,則在整個框架內部都可以訪問,框架由外部代碼所引用時,則不可以訪問。如果是App代碼,也是在整個App內部可以訪問。


4. public:
可以被任何人訪問。但其他module中不可以被override和繼承,而在module內可以被override和繼承。


5. open:
可以被任何人使用,包括override和繼承。用於宣告class以及class內所有的成員,層級最高,所有module和source file都可取得,且可subclass和override此class。

存取權限的大小由大到小分別為: open -> public -> internal -> fileprivate -> private

沒有留言:

張貼留言

解決iOS 14上如果更換預設瀏覽器(例如從Safari換成Chrome)時, 用Scheme架構會無法回到上一頁的問題

 如果遇到以下問題時 須在Info裡的LSApplicationQueriesSchemes裡設定多增加https, 如下圖: