Я крутился на этом уже 2 часа, поэтому подумал, что отправлю сюда за советом.
В моем методе viewDidLoad я делаю:
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 600)];
...
UIView *contactsRow = [self generateContactsRow];
contactsRow.frame = CGRectMake(10, tableMaxY, 300, 56);
...
[scrollView addSubview:contactsRow];
[self.view addSubview:scrollView];
[scrollView release];
В [self generateContactsRow] я в основном создаю представление контейнера, загружаю в него кучу других представлений (кнопки, метки и т. Д.) И возвращаю его.
UIView *containerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 0)] autorelease];
... (define stuff)
// set it
[containerView addSubview:imageView];
[containerView addSubview:textLabel];
[containerView addSubview:detailTextLabel];
[containerView addSubview:addButton];
[containerView addSubview:hr];
// and forget it
[imageView release];
[textLabel release];
[detailTextLabel release];
[addButton release];
[hr release];
return containerView;
Тот факт, что я автоматически выпускаю containerView, вызывает сбой моего приложения. Я возвращаю объект alloc'd, поэтому я подумал, что должен каким-то образом освободить его, и авто-релиз казался лучшим способом. Если я его уберу, все будет работать нормально, но у меня не будет утечки памяти?
Спасибо