访问控制一共五种开放程度,由高到低分别是:
open :允许在定义实体的模块(module),其它模块中访问、继承、重写(只能用在类或其成员上);例如:系统提供的UIKit库中的 UIView,UICollectionViewCell等,还有需要继承使用的pod库
public :允许在定义实体的模块,其它模块中访问,只有使用权限;****例如:****系统提供的基本类型 Int, Double,String等,SnapKit自动布局库
internal :只允许在定义实体的模块访问,不允许**其它模块中访问,不写默认为此权限
fileprivate :**只****允许在定义实体的源文件中访问
private :**只******允许在定义实体的封闭声明中访问(一般即是大括号内{})
总结:
- 需要让其它模块使用的实体就用 open,**public **定义,如果不想被继承则使用 **public **定义;
- 一般自定义的pod基础组件都需要用open修饰;
- 一般自定义的pod功能组件都需要用public修饰;
名词解释:
模块:module,默认一个target就是一个模块;模块中可访问的代码(>=internal),不需要导入头文件(import)即可互相访问;
网友评论