Благодарю. Я был настолько удивлен, что вариант 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 больше подходит? Зависит ли ответ от типа объекта (например, изменяемый / неизменный)?
Также приветствуются указатели на справочный материал, обсуждающий компромиссы для использования / неиспользования свойств в целом.