Благодарю. Я был настолько удивлен, что вариант 2 объявлял статическое, что я написал небольшой тест, чтобы убедить себя. Действительно, ты был прав. Мало ли я знаю. Вариант 3 кажется действительно лучшим подходом для частных переменных, которые не должны быть статичными.

ел бы знать, каковы рекомендации для объявления переменных частного экземпляра в какао. Этот вопрос находится в контексте разработки приложений для iPhone.

Мне известны как минимум три способа объявления частных переменных:

Объявите их в интерфейсе файла h с модификатором @private:

@interface MyClass : NSObject {  
  @private  
  NSObject * myPrivateVar;   
}

Объявите их в разделе реализации файла m:

@implementation MyClass  
NSObject * myPrivateVar;

Объявите свойство в интерфейсе m-файла (даже не объявляя саму переменную):

@interface MyClass ()  
@property (nonatomic, retain) NSString* myPrivateVar;  
@end  
@implementation  
@synthesize myPrivateVar;

До сих пор я широко использовал 2, но недавно пришел к выводу, что это может быть опасно из-за отсутствия сборки мусора. Существуют ли случаи, когда остается совершенно приемлемым использовать этот метод?

3 больше подходит? Зависит ли ответ от типа объекта (например, изменяемый / неизменный)?

Также приветствуются указатели на справочный материал, обсуждающий компромиссы для использования / неиспользования свойств в целом.

Ответы на вопрос(1)

Ваш ответ на вопрос