Прежде всего, вы ничего не сохраняете в файле .h.
Цель объявления @property
в файле .h (его также можно указать в файле .m) - сообщить компилятору, как обрабатывать методы получения и установки этого свойства при использовании (синтаксис точки).).
Пример:
Объявление свойства следующим образом:
@property (nonatomic, retain) IBOutlet UITableView *myTable;
Сообщает компилятору, что при создании UITableView в файле .m, например, так:
- (id)initWithTable:(UITableView *)table
{
self = [super init];
if (self) {
self.myTable = table;
}
return self;
}
Компилятор автоматически узнает о том, чтобы сохранить его, и поэтому вам также необходимо освободить его.
Но если вы объявите свое свойство следующим образом:
@property (nonatomic, assign) IBOutlet UITableView *myTable;
и создал tableView, как в предыдущем примере
- (id)initWithTable:(UITableView *)table
{
self = [super init];
if (self) {
self.myTable = table;
}
return self;
}
Компилятор только присвоит значению myTable указатель на таблицу.Ты не будешь владеть им и не должен выпускать его.