有 3 个修饰符:@private、@protected(默认)和@public。习惯于在 C++ 和其他更理智的语言中这样做,我总是在我的字段中使用 @private。我几乎(如果有的话)在 Apple 的 SDK 示例中看到这一点——它们只依赖于默认的。
有一天我意识到 Objective-C 继承是相当虚假的特性:从另一个接口(interface)派生接口(interface)并不意味着所有私有(private)字段现在都可用于重新定义。编译器仍然会看到它们并不允许定义一个具有相同名称的新私有(private)字段,这与 OOD 中的经典封装范例正交。
所以我有点沮丧。也许我对这门语言的期望太高了,因为它只不过是在标准 C 之上的构建。
那么你在代码中使用@private 吗?为什么?
最佳答案
我想总是使用 @private
是个好主意, 但我过去从来没有打扰过,因为我通常对几乎所有 ivar 访问都使用属性访问器,init
除外。和 dealloc
方法。所以在实践中,我很少遇到错误访问 ivars 的问题。
此外,如果您的目标是 iOS 4+,如果您使用 @synthesize
,则无需为属性声明 ivars。 .
我应该注意,如果您正在编写打算由其他开发人员子类化的库代码,请使用 @private
会更重要。
关于iphone - Objective-C:你在代码中使用@private 可见性/访问修饰符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608158/