Я смотрел вводный видеоролик WWDC ARC и увидел то, чего никогда раньше не видел в ObjC, когда какой-то инженер Apple рассказывал о примере стека.
Следующий код был использован для примера стека с 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
Обратите внимание на переменную экземпляра, объявленную сразу после директивы @implementation .
Что меня удивило, так это то, что переменная экземпляра действительно может быть объявлена в файле реализации, не будучи статической переменной. У меня будут следующие вопросы: