我有点困惑,尽管事实上我一般没有很多编程经验,但我的理解是,在一个程序中,你将一切都设为私有,只公开你想要暴露给其他人的属性和方法.类.
来自Apple Docs
In addition to offering varIoUs levels of access control,Swift
reduces the need to specify explicit access control levels by
providing default access levels for typical scenarios. Indeed,if you
are writing a single-target app,you may not need to specify explicit
access control levels at all.
通过将每个属性/方法保留为默认值(内部),您基本上可以访问其他类的值,对吗?
为什么在Swift / Cocoa中你很少看到私有访问器用于你不希望程序的其他部分访问的属性?
有人可以如此善良并解释一般的概念访问器吗?为什么Swift以这种方式设计,或者甚至更好地纠正我,如果我在上面的假设我错了,再次我没有太多的OOP经验我可能会对访问者的概念感到困惑.
谢谢
更新:今天(2016年7月1日)我观看了视频#3从斯坦福大学在iTunes中提供的Swift开发iOS 8应用程序的应用程序中的MVC和24分钟时分24:15 Paul Hegarty谈到访问控制,我强烈推荐它.
解决方法
Swift的访问控制不是基于类,而是基于源文件和模块.我们的想法是,如果您编写一个类,那么默认情况下您应该可以访问同一源文件或模块中其他类的所有成员.如果其他人扩展了您的类,他们的代码将位于不同的模块和源文件中,因此除非您授予他们访问权限,否则他们将无法访问您的基类成员.
如果你考虑一下,Swift的访问控制范式与C / Java一样有意义,它只是不同.
有关此语言和其他语言之间的差异,请参阅http://www.swiftprogrammer.info/swift_vs_cpp.html.