Цель C: ARC с IVars, объявленным в файле реализации

Я нашел интересный пост, описывающий, как в Objective-C 2.0 переменные экземпляра могут быть объявлены в файле реализации. Рассмотрим этот пример:

@interface MyClass {}
@end

@implementation MyClass {    
  NSObject *obj1;
  NSObject *obj2;
}
@end

Обратите внимание, что ivars obj1 и obj2 не объявлены. Поскольку они не объявлены с помощью оператора @property, не существует соответствующих квалификаторов собственности, таких как weak/strong.

Мой вопрос: не будет ли проект, использующий Automatic Reference Counting (ARC), очистить объекты, объявленные таким образом? Будут оценены любые документы, посвященные этой конкретной проблеме.

Ответ 1

Да, они неявно имеют перед ним __strong. ARC будет иметь дело с ними так же, как вы ожидаете от сильной собственности. Соответствующий раздел в документах 4.4.1. Objects.