objective-c - 标记实例变量@private

标签 objective-c private instance-variables

我注意到许多 Apple 接口(interface)在实例变量声明之前使用 @private。这有什么好的设计理由吗?我应该这样做吗?

最佳答案

私有(private)实例变量用于将接口(interface)与实现分开。在 Objective-C 中,由于类声明必须显示所有实例变量,因此需要有一种方法来防止子类访问属于内部实现的一部分。否则,其他程序员可能会编写依赖于这些内部变量的代码,这将使类设计者无法在不破坏现有代码的情况下对类内部进行更改。

从另一个角度来看,未标记为私有(private)的实例变量是与子类程序员签订的契约(Contract)的一部分,而标记为私有(private)的则不是。

这意味着实例变量通常应标记为私有(private),以便只能通过其访问器方法来访问它们(如果有的话)。否则,有人可以轻松地编写您的类的子类,并简单地创建一个访问器来将任何实例变量公开。

关于objective-c - 标记实例变量@private,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1933438/

相关文章:

ios - 切换应用程序时会调用 viewWillDisappear/viewDidDisappear 吗?

ios - 当 View 加载到一个 xib 文件中时选择特定的 UIView

来自 NSAttributedString 的 HTML

ios - AFNetworking NTLM 身份验证?

git - 来自私有(private) GitHub 存储库的 Cordova 插件

rust - 为什么这个特征 `impl` 被认为泄漏了私有(private)特征?

c++ - C++ 中私有(private)变量在栈中的什么位置

Ruby - 如何使用 "self"方法访问类中的实例变量?

c++ - C/C++ 可以通过查询类来获取实例成员的 "list"?

java - Java 中的变量和方法阴影