在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在swift 3中新增加了两种访问控制权限 下面结合网上资料和个人理解整理一下两个属性的原理与介绍。 在原有的swift中的
这样带来了两个问题:
由此,在swift 3中,新增加了一个 过去的private对应现在的fileprivate。现在的private则是真正的私有,离开了这个类或者结构体的作用域外面就无法访问。 所以fileprivate > private .
openopen则是弥补public语义上的不足。
继承是一件危险的事情。尤其对于一个framework或者module的设计者而言。在自身的module内,类或者属性对于作者而言是清晰的,能否被继承或者override都是可控的。但是对于使用它的人,作者有时会希望传达出这个类或者属性不应该被继承或者修改。这个对应的就是
这就是
通俗的理解public和open就是: public:可以被任何人访问,但其他module中不可以被override和继承,而在本module内可以被override和继承。 open:可以被任何人使用,包括override和继承。
下面是例子:
总结现在的访问权限 由大到小 依次为:open,public,internal(默认),fileprivate,private。
internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
如果是App代码,也是在整个App代码,也是在整个App内部可以访问。
|
请发表评论