Swift 5.x 權(quán)限控制

模塊和源文件

  • 模塊指的是獨(dú)立的代碼分發(fā)單元, 框架或應(yīng)用程序會(huì)作為一個(gè)獨(dú)立的模塊來(lái)構(gòu)建和發(fā)布.在Swift中, 一個(gè)模塊可以使用import關(guān)鍵字導(dǎo)入另外一個(gè)模塊.
  • 源文件就是Swift中的源代碼文件, 它通常屬于一個(gè)模塊, 即一個(gè)應(yīng)用程序或者框架. 盡管我們一般會(huì)將不同的類型分別定義在不同的源文件中, 但是同一個(gè)源文件也可以包含多個(gè)類型拒啰、函數(shù)之類的定義.

訪問(wèn)級(jí)別

  • open: 公開(kāi)權(quán)限, 最高的權(quán)限, 可以被其他模塊訪問(wèn)炒嘲、繼承及復(fù)寫. 只能用于類和類的成員.
  • public: 公有訪問(wèn)權(quán)限, 類或者類的公有屬性或者公有方法可以從文件或者模塊的任何地方進(jìn)行訪問(wèn). 一個(gè)App就是一個(gè)模塊, 一個(gè)第三方API、第三方框架等都是一個(gè)完整的模塊, 這些模塊如果要對(duì)外留有訪問(wèn)的屬性或者方法, 就應(yīng)該使用public的訪問(wèn)權(quán)限. public的權(quán)限在Swift 3.0后無(wú)法在其它模塊被復(fù)寫方法/屬性或被繼承.
  • internal: 內(nèi)部, 即有著internal訪問(wèn)權(quán)限的屬性和方法在模塊內(nèi)部可以訪問(wèn), 超出模塊內(nèi)部就不可被訪問(wèn)了. 在Swift中默認(rèn)就是internal的訪問(wèn)權(quán)限.
  • fileprivate: 文件私有訪問(wèn)權(quán)限, 被fileprivate修飾的類或者類的屬性或方法可以在同一個(gè)物理文件中訪問(wèn). 如果超出該物理文件, 那么有這fileprivate訪問(wèn)權(quán)限的類帕棉、屬性和方法就不能被訪問(wèn)了.
  • private: 私有訪問(wèn)權(quán)限, 被private修飾的類或者類的屬性或方法可以在同一個(gè)物理文件中的同一個(gè)類型(包含extension)訪問(wèn). 如果超出物理文件或不屬于同一類型, 那么有著private訪問(wèn)權(quán)限的屬性和方法就不能被訪問(wèn).

潛在規(guī)則1
  • 如果一個(gè)類的訪問(wèn)級(jí)別是fileprivateprivate那么該類的所有成員都是fileprivateprivate(此時(shí)成員無(wú)法修改訪問(wèn)級(jí)別), 如果一個(gè)類的訪問(wèn)級(jí)別是open褐桌、internalpublic那么它的所有成員都是internal, 類成員的訪問(wèn)級(jí)別不能高于類的訪問(wèn)級(jí)別
    注意: 嵌套類型的訪問(wèn)級(jí)別也符合此條規(guī)則
潛在規(guī)則2
  • 常量衰抑、變量、屬性荧嵌、下標(biāo)腳本訪問(wèn)級(jí)別低于其所有聲明的類型級(jí)別, 并且如果不是默認(rèn)訪問(wèn)級(jí)別(internal)要明確聲明訪問(wèn)級(jí)別

例如一個(gè)常量是一個(gè)private類型的類類型, 那么此常量必須聲明為privatefileprivate

潛在規(guī)則3
  • 在不違反潛在規(guī)則1潛在規(guī)則2的情況下, setter的訪問(wèn)級(jí)別可以低于getter的訪問(wèn)級(jí)別.

例如一個(gè)屬性訪問(wèn)級(jí)別是internal, 那么可以添加private(set)修飾將setter權(quán)限設(shè)置為private, 在當(dāng)前模塊中只有此源文件可以訪問(wèn), 對(duì)外部是只讀的.

潛在規(guī)則4
  • 必要構(gòu)造方法(required修飾)的訪問(wèn)級(jí)別必須和類訪問(wèn)級(jí)別相同, 結(jié)構(gòu)體的默認(rèn)逐一構(gòu)造函數(shù)的訪問(wèn)級(jí)別不高于其成員的訪問(wèn)級(jí)別, 其他方法(包括其他構(gòu)造方法和普通方法)的訪問(wèn)級(jí)別遵循潛在規(guī)則1

例如一個(gè)成員是private那么這個(gè)構(gòu)造函數(shù)就是private, 但是可以通過(guò)自定義來(lái)聲明一個(gè)public的構(gòu)造函數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呛踊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子啦撮,更是在濱河造成了極大的恐慌谭网,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赃春,死亡現(xiàn)場(chǎng)離奇詭異愉择,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門薄辅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)要拂,“玉大人抠璃,你說(shuō)我怎么就攤上這事站楚。” “怎么了搏嗡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵窿春,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我采盒,道長(zhǎng)旧乞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上稍坯,老公的妹妹穿的比我還像新娘恩静。我一直安慰自己,他們只是感情好蝌蹂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般挫以。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窃祝,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天掐松,我揣著相機(jī)與錄音,去河邊找鬼粪小。 笑死大磺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的探膊。 我是一名探鬼主播杠愧,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼突想!你這毒婦竟也來(lái)了殴蹄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猾担,失蹤者是張志新(化名)和其女友劉穎袭灯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绑嘹,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稽荧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了工腋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姨丈。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡畅卓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蟋恬,到底是詐尸還是另有隱情翁潘,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布歼争,位于F島的核電站拜马,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沐绒。R本人自食惡果不足惜俩莽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乔遮。 院中可真熱鬧扮超,春花似錦、人聲如沸蹋肮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)括尸。三九已至巷蚪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間濒翻,已是汗流浹背屁柏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留有送,地道東北人淌喻。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像雀摘,于是被迫代替她去往敵國(guó)和親裸删。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355