Swift3 0新增的兩個訪問關鍵字介紹

2021-07-23 08:26:59 字數 953 閱讀 9757

在swift3.0以前的版本中有3中訪問關鍵字,分別為private、internal和public。而在最新的swift3.0中新增了fileprivate和open。接下來我們將詳細介紹這兩個關鍵字。

fileprivate 其實就是過去的 private。其修飾的屬性或者方法只能在當前的 swift 原始檔裡可以訪問。即在同乙個檔案中,所有的 fileprivate 方法屬性都是可以訪問到的。

class a  

}class b:a

}

而private現在變為了真正的私有訪問控制。就是說不管在不在同乙個檔案中,用private修飾的方法也不可以被**域之外的地方訪問。

class a 

} class b:a

}

上面的例項是我們使用private方法定義乙個父類a的成員方法,但是當繼承該類的子類呼叫該方法時將會出現如下圖的報錯:

open其實就是過去的public,過去public有兩個作用:

但這樣就會有問題,為了安全,我們可能希望某個類或屬性能夠被外部訪問,但又不想其被繼承或修改。如果將其標記成final後又會造成任何地方都不能被override。比如對lib設計者來說,他希望的結果是在module內可以被override,而被import 到外部後不能被override。

現在新新增的open起的就是原來public的作用。而現在的public表示在其他module中不可以被override和繼承,而在module內可以被 override和繼承。

從高到低排序如下:

open> public > interal > fileprivate > private

原文出自:

兩個網域名稱同時訪問乙個tomcat下的兩個專案

兩個網域名稱,分別對映乙個tomcat底下,兩個應用。分三個步驟完成。1 網域名稱與ip的解析,此步驟在萬網等機構完成。2 apache的httpd.conf的配置 serveradmin deqiang guo yeah.net servername www.yichaoart.com error...

兩個網域名稱同時訪問乙個tomcat下的兩個專案

兩個網域名稱,分別對映乙個tomcat底下,兩個應用。分三個步驟完成。1 網域名稱與ip的解析,此步驟在萬網等機構完成。2 apache的httpd.conf的配置 serveradmin deqiang guo yeah.net servername www.yichaoart.com error...

Swift 計算兩個日期的相隔多少天

給定兩個日期,計算兩個日期相隔多少天。主要利用datecomponents實現 nscalendar.current.datecomponents components set from to dateformatter.dateformat yyyy mm dd let date1 datefor...