公共与内部访问修饰符

时间:2017-06-09 09:17:27

标签: ios swift access-modifiers

我已阅读Apple提供的文件,https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

在这里,它解释了:

  

具有公共访问权限的类或任何更具限制性的访问级别,   只能在定义它们的模块中进行子类化。

     

内部访问允许实体在其定义模块的任何源文件中使用,但不能在任何源文件中使用   模块。您通常在定义应用程序或a时使用内部访问权限   框架的内部结构。

     

开放类可以在定义它们的模块中进行子类化,也可以在任何导入模块的模块中进行子类化。   定义

我没有找到公开内部访问权限之间的确切区别。

我的研究也包括http://www.globalnerdy.com/2014/07/23/a-first-look-at-swifts-new-access-levels/。但是根据swift3.3文档,它还不清楚。

1 个答案:

答案 0 :(得分:2)

Swift的访问控制模型基于modulessource files.

的概念

模块是一个代码分发单元 - 一个框架或应用程序,它作为一个单元构建和发布,可以由另一个模块使用Swift的import关键字导入。

例如,一些流行的模块:Alamofire,SwiftyJson,RxSwift ...... 您要导入项目的这些模块。使用internal access level的所有类只能在这些库/模块中使用。您不能直接在代码中使用它们。 但如果课程为public - 您可以直接在资源中使用它。