相关疑难解决方法(0)

在ObjC实现文件中声明的实例变量

我正在观看WWDC ARC介绍视频,在看到一个Apple工程师谈到Stack示例之前,我看到过ObjC中从未见过的东西.

以下代码用于ARC的堆栈示例:

@implementation Stack 
{ 
    // instance variable declared in implementation context
    NSMutableArray *_array; 
}

- (id)init 
{
   if (self = [super init])
      _array = [NSMutableArray array];
   return self;
}

- (void)push:(id)x 
{
   [_array addObject:x];
}

- (id)pop 
{
   id x = [_array lastObject];
   [_array removeLastObject];
   return x;
}

@end
Run Code Online (Sandbox Code Playgroud)

请注意在@implementation指令之后声明的实例变量.

现在让我感到惊讶的是,实际变量实际上可以在实现文件中声明,而不是静态变量.我的问题如下:

  • 这是SDK for iOS 5中引入的一些新构造还是已经可以使用很长时间了?
  • 如果不在对象外部访问实例变量,那么在实现中声明实例变量是不错的做法?它似乎比使用@private指令更清洁.

objective-c automatic-ref-counting

47
推荐指数
2
解决办法
2万
查看次数