【问题标题】:Variable in implementation file实现文件中的变量
【发布时间】:2014-12-01 08:09:29
【问题描述】:

我刚开始学习目标 c,并且一直在在线学习教程。 在本教程中,它在大括号中的实现(.m 文件)中设置了 NSMutableAray 指针。 我认为应该在头文件中声明指针变量。 在大括号中的实现文件中包含指针变量的原因/好处是什么?

@interface AppDelegate ()

@end

@implementation AppDelegate
{
    NSMutableArray *_players;
}

【问题讨论】:

标签: objective-c


【解决方案1】:

在@implementation中声明实例变量的两个原因:

  1. 实例变量对实现来说是私有的,它是隐式私有的,不能公开,甚至子类也看不到它。这限制了从实现外部对实例变量的值的访问,或将其值设置为对接口中声明的公共(或受保护)方法/属性的访问。

  2. 它通过删除与类的用户无关的细节,而只与类的实现无关,从而使公众@interface 变得杂乱无章。

最初Objective-C 不支持在@implementation 中声明实例变量,但现在已经支持几个版本的Xcode/clang。在旧代码中,您仍然会在 @interface 中看到实例变量,但在新代码中最好在 @implementation 中声明它们。

HTH

【讨论】:

    【解决方案2】:

    显然私有接口在外面不可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-15
      • 2017-05-13
      • 1970-01-01
      • 2010-10-30
      • 2019-07-05
      • 2013-04-18
      • 2022-11-30
      • 2012-11-21
      相关资源
      最近更新 更多