Ответ 1
Если переменная:
- Объявляется в классе с помощью ARC.
- Используется исключительно для реализации класса (не отображается как часть интерфейса класса).
- Не требуется KVO.
- Не требует пользовательского getter/setter.
Тогда уместно объявить его как ivar без соответствующего @property
/@synthesize
и ссылаться на него непосредственно в реализации. Он встроен в Encapsulation, чтобы объявить этот ivar в файле реализации класса.
// MyClass.h
@interface MyClass : ParentClass
@end
// MyClass.m
@implementation MyClass {
NSString *myString;
}
- (void)myMethod {
myString = @"I'm setting my ivar directly";
}
@end
- Этот ivar будет рассматриваться как
__strong
компилятором ARC. - Он будет инициализирован
nil
, если это объект, или0
, если он является примитивным.