iphone - Objective-C:你在代码中使用@private 可见性/访问修饰符吗?

标签 iphone objective-c ios

有 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/

相关文章:

iphone - 验证具有特殊字符的文本字段

iphone - UITableView 字体

objective-c - Objective C 在 UIWebView 中加载 PDF 文件

ios - NSDate 到 NSString 的转换不遵循 NSDateFormatter

ios - UIPickerView 委托(delegate)方法 titleForRow 未正确执行?

ios - 我可以通过应用组共享文件/数据但在不同的开发者帐户应用程序中吗?

php - 通过套接字从 iPhone 客户端连接到 PHP 服务器

iphone - 搜索硕士论文主题

iphone - 如何在两个重叠的 UIView 中启用用户交互?

ios - 在 iOS6 中使用 Storyboard ,我如何以模式切换到另一个 View ,但该 View 有一个导航栏