@synthesize IBOutlet property

Я новичок в Objective-C и читаю «Программирование для iPhone» Аласдера Аллана. При чтении я обнаружил этот код:

@interface RootController : UIViewController <UITableViewDataSource, UITableViewDelegate> {
    UITableView *tableView;
    NSMutableArray *cities;
}
// warning: remember this tableView
@property (nonatomic, retain) IBOutlet UITableView *tableView;

Относительная реализация начинается так:

@implementation RootController
@synthesize tableView;

Теперь: я узнал, что @synthesize - это своего рода ярлык, позволяющий избежать утомительных методов получения и установки.

Но у меня есть вопрос:

  1. в коде реализации tableView никогда явно не вызывается , но dealloc освобождает его;
  2. если он никогда не вызывается явно, почему @synthesize?

Обязательно ли синтезировать IBOutlets?

8
задан Matteo Alessani 12 July 2011 в 15:21
поделиться