3

当您单独工作或与可以访问应用程序的所有属性、ivars 的团队一起工作时,在 Xcode 中使用 @private 指令有什么意义?

是否有内存使用、性能等优势?或者这只是大型团队的一个东西,其中一个部分不应该使用将来可以改变的东西?

谢谢

4

1 回答 1

4

@private在类声明中使用@interface确保没有其他类可以访问 ivars。这对于封装很重要。这对于单个开发人员而言与对于数十名开发人员的团队一样重要。

封装可确保您仅将提供的 API 用于一个类,而无需知道它在内部是如何工作的。一段时间后,您可能希望更改实施。这应该对任何已经使用该类的类没有影响。API 不会改变,只会改变它的实现。

请记住,只能在给定类的实现中访问 ivars。没有其他类应该有权访问这些 ivars。否则,您的代码将变得非常脆弱且难以维护。

编辑:使用现代 Objective-C,您甚至不应该在 .h 文件中有任何 ivars。将它们移动到@implementation 行,保证它们是私有的,使用 .h 文件的人甚至都不知道你有什么 ivars。

于 2012-11-06T19:48:31.573 回答