【问题标题】:Public Vs Internal Access Modifier公共与内部访问修饰符
【发布时间】:2017-11-11 05:51:27
【问题描述】:

我已经浏览了 Apple 提供的文档,即 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

在这里,它解释了:

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

内部访问使实体可以在其定义模块的任何源文件中使用,但不能在该模块之外的任何源文件中使用 模块。在定义应用程序或 框架的内部结构。

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

我没有找到 publicInternal 访问权限之间的确切区别。

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

【问题讨论】:

标签: ios swift access-modifiers


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2019-07-15
    • 2011-04-18
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    相关资源
    最近更新 更多