【发布时间】:2017-11-11 05:51:27
【问题描述】:
我已经浏览了 Apple 提供的文档,即 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html
在这里,它解释了:
具有公共访问权限或任何更多限制访问级别的类, 只能在定义它们的模块内进行子类化。
内部访问使实体可以在其定义模块的任何源文件中使用,但不能在该模块之外的任何源文件中使用 模块。在定义应用程序或 框架的内部结构。
开放类可以在定义它们的模块中进行子类化,也可以在导入它们所在模块的任何模块中进行子类化 定义
我没有找到 public 和 Internal 访问权限之间的确切区别。
我的研究也包括http://www.globalnerdy.com/2014/07/23/a-first-look-at-swifts-new-access-levels/。但根据 swift3.3 文档,它并不清楚。
【问题讨论】:
-
内部类在定义模块之外根本无法访问。公共类可以在定义模块之外访问,但不能被子类化
-
如文档中所述,您链接到“开放访问和公共访问使实体可以在其定义模块的任何源文件中使用,也可以在另一个导入的模块的源文件中使用定义模块" :)
-
感谢 Martin 提供此“stackoverflow.com/questions/24003918/…”链接。它很有帮助。
标签: ios swift access-modifiers