访问控制说明符(快速)—简而言之

开放,公开,内部,私有,文件私有

在本文中,我将用螺母壳介绍所有五个访问控制说明符,以便您可以长时间记住它。

您必须了解一件事: module 。 想象一个模块是一捆代码。 您的单个Xcode项目/框架/捆绑包被视为一个模块。 例如:CoreData,UIKit,CustomFramework是模块。

打开:

可以从外部模块(UICollectionView或UITableView)创建子类,添加更多功能,访问其自身的功能。

上市 :

没有子类,可以使用Delegate覆盖模块外部的功能(UICollectionViewDelegate或UITableViewDelegate)-只有子类只能在定义它们的模块内覆盖它。 公共访问级别使实体可以在定义模块之外使用

内部:

模块中对with的访问限制,例如:即使我们导入CoreData,iOS开发人员也无法访问CoreData工程师创建的内部函数。

FilePrivate:

从其类型之外但在同一文件中进行访问。 如果将某文件标记为filePrivate,则可以在声明该文件的同一文件中的任何位置读取该文件,甚至可以在该类型之外读取。

私人的 :

从外部访问,但只能在其类型(扩展名)中进行访问,只能在声明它的类型内部或在同一文件中创建的对该类型的扩展内部读取私有属性。

重要

公用类型默认为具有内部成员,而不是公用成员。 如果要让类型成员公开,则必须明确地将其标记为公共成员。 此要求确保您选择发布类型的面向公众的API,并避免错误地将类型的内部工作方式呈现为公共API。

参考文献:

  1. https://docs.swift.org/swift-book/LanguageGuide/AccessControl.html