Я не понимаю, почему некоторые классы объявляют свойство, но не объявляют ivar и наоборот.
Является ли стандартной практикой при объявлении переменной экземпляра также объявлять ее как свойство?
Пример:
@interface AppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
это просто стандартная практика при объявлении ivar класса, чтобы сделать его также свойством?
Я понимаю, что @property создает свой собственный удлиненный сеттер (и геттер с @synethesize), но почему он также должен быть ivar?