#iphone #ios4
#iPhone #ios4
Вопрос:
в iPhone: когда я добавляю вложенный просмотр в представление, использование [myview addsubview: anotherview.view] сохранит «мой вид» в памяти, что может вызвать проблему при добавлении большого количества представлений в качестве вложенных представлений.
Ответ №1:
Да, addSubview сохраняет добавленные вами подвиды, и да, если вы добавите слишком много подвидов, у вас могут возникнуть проблемы с памятью, но это маловероятно, если это произойдет, вы получите
- (void)didReceiveMemoryWarning
За которым следует:
- (void)viewWillUnload
а затем:
- (void)viewDidUnload
Это разгрузит ваше представление и освободит его подвиды. Однако не забудьте установить для дополнительных вложенных представлений значение nil в методе viewDidUnload, поскольку эти вложенные представления также сохраняются самим ViewController, поэтому они не будут освобождены при выгрузке представления, если вы не установите для них значение nil здесь.
Комментарии:
1. Могу ли я заменить это текущее представление другим представлением, чтобы избежать возможных проблем с памятью, если да, то как я могу это сделать?
2. @Alaa Eldin, какое именно представление вы имеете в виду?, вы можете удалить вложенные представления в любое время.
3. вот вы, что мне именно нужно, при запуске приложения я создаю объект из представления «mainview» и добавляю его в окно, это mainview содержит кнопку, в прослушивателе этой кнопки (при нажатии функции) я должен создать новое представление, используя [mainview addsubview newview.view]метод, здесь я хочу удалить mainview и вместо этого показать newview, спасибо за вашу помощь.
Ответ №2:
в вашем примере myview
сохранится anotherview.view
(view.view? ..).
Однако myview
он не будет сохранен до тех пор, пока вы не добавите его в качестве вложенного представления в другое представление или не сохраните его каким-либо другим способом.